首页 > 2021年3月七牛云暑期测开实习面经
头像
牛客988320449号
编辑于 2021-03-21 09:49
+ 关注

2021年3月七牛云暑期测开实习面经

下次要记得拿张纸来写。
我以为要电脑,没想到不用,就手机说一说就行。
算法题:
根据一个相对字符串, 得到绝对路径。
我写,就口头给他讲一讲。
while(不为回车){
    char c = getchar();
    if( c== '/'){
        while( 读入后面的!= '/' 且不为回车){
            读入字符串
        }
        字符串入栈。
    }
    如果是‘。’ 那就不变
        如果是‘。。’ {,
            if(栈非空) pop
            else 啥都不做,停在根目录
            }
}

问我数组,数组arraylist满了怎么办? 我说变成两倍大,  现在仔细看看好像很复杂, https://blog.csdn.net/qq_26542493/article/details/88873168 有的时候加一个, 有的时候1.5倍。

1.ArrayList创建对象时,若未指定集合大小初始化大小为0;若已指定大小,集合大小为指定的大小;

2.当第一次调用add方法时,集合长度变为10addAll内容之间较大值

3.之后再调用add方法,先将集合扩大1.5倍,如果仍然不够,新长度为传入集合大小;


链表的时间复杂度, 双向链表时间空间复杂度。
然后问hashmap实现


如果开放寻址之后, 删除一个,会怎么处理? 加tag么? tag怎么变?
如果用冲突了用链表, 链表很大的时候怎么办? 我说不知道

HashMap在JDK1.8及以后的版本中引入了红黑树结构,若桶中链表元素个数大于等于8时,链表转换成树结构;若桶中链表元素个数小于等于6时,树结构还原成链表。因为红黑树的平均查找长度是log(n),长度为8的时候,平均查找长度为3,如果继续使用链表,平均查找长度为8/2=4,这才有转换为树的必要。链表长度如果是小于等于6,6/2=3,虽然速度也很快的,但是转化为树结构和生成树的时间并不会太短。

还有选择6和8,中间有个差值7可以有效防止链表和树频繁转换。假设一下,如果设计成链表个数超过8则链表转换成树结构,链表个数小于8则树结构转换成链表,如果一个HashMap不停的插入、删除元素,链表个数在8左右徘徊,就会频繁的发生树转链表、链表转树,效率会很低。


topK问题, 一个很大的文本文件,无法进入内存, 怎么选择出现频率最多的。
我那时候应该问问,是一个文件,我以为是多个文件。
一种方法是读出到几百万个小文件中, 同时计数
这个我没有想出来。 他说大数据联机处理也可以
问我多态是怎么实现的,我说override 和overload 。
线程怎么实现的, 我说runnable ,他说还有呢? 我说task, cached pool, 他叫我停下, 估计知道我要背书了。
问我锁, synchronize 现在没有lock用的多, 为什么? 我不知道
我问你们做啥的? 他说效率工具, 打包自动化, sici, 持续集成持续发布,  质量管理, 业务线自动化golang脚本

问的好简单,就只问了我会的数据结构和java,  计网操作系统数据库sql都没问,

更多模拟面试

全部评论

(3) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐