快手一面

1. 烂大街项目浅问
2. 观察者模式
3. 用栈实现队列
4. LRU 算法,什么原理,怎么实现
5. ConcurrentHashMap, 怎么实现的
6. 在学校研究什么方向
7. 死锁的条件
8. 迭代遍历二叉树(寄)
9. 堆排序(寄)

写代码的题都寄了,那应该没希望了
全部评论
力扣有很多堆的题目,比如第k大的数字。去刷一道就会了
12 回复 分享
发布于 2023-08-25 10:06 浙江
同不会,已经二捞寄
5 回复 分享
发布于 2023-08-25 00:39 英国
这种题目就是不想让你过的😅😅我今天出了个反转老板
5 回复 分享
发布于 2023-08-24 19:50 湖北
全世界只有在快手挂简历了吗😓😓😓
2 回复 分享
发布于 2023-08-27 09:37 北京
看看自动驾驶元戎启行秋招,965工作制,带薪年假病假,投递及查进度方式👉🏻 https://www.nowcoder.com/discuss/508445999631765504
2 回复 分享
发布于 2023-08-26 23:50 北京
迭代遍历二叉树和堆排这个真的是属于基本功中的基本功了,你该多准备一下的
1 回复 分享
发布于 2023-08-31 20:38 上海
还没拿到offer的同学可以看一下,自动驾驶校招已经开始!!【元戎启行24秋招】地址:https://www.nowcoder.com/discuss/508445999631765504
1 回复 分享
发布于 2023-08-27 23:37 北京
同寄😂
1 回复 分享
发布于 2023-08-24 17:53 湖北
烂大街的是什么项目
点赞 回复 分享
发布于 2023-09-05 14:26 上海
有没有跟我一样的一点java数据库基础都没问的😂😂
点赞 回复 分享
发布于 2023-08-28 20:14 吉林
校友你好是软件的吗😁😁
点赞 回复 分享
发布于 2023-08-28 11:39 四川
还没拿到offer的同学可以看一下,阿里校招刚开始!!【阿里F24秋招】-淘天集团-自营技术部门】地址:https://www.nowcoder.com/discuss/521688013303259136
点赞 回复 分享
发布于 2023-08-27 19:52 浙江
什么岗位呀,我感觉这些问题我还能答出来,但是为什么面我的题目好多都好难
点赞 回复 分享
发布于 2023-08-27 12:07 湖南
确实都是常出的题,迭代遍历是必须要会的
点赞 回复 分享
发布于 2023-08-27 10:19 广东
咱们俩一个面试官把
点赞 回复 分享
发布于 2023-08-26 23:03 天津
漂亮,和我一样关于树的题是一个不会
点赞 回复 分享
发布于 2023-08-24 16:56 河北
手写堆排序吗?
点赞 回复 分享
发布于 2023-08-24 16:36 福建

相关推荐

01-10 21:01
门头沟学院 Java
比较经典的题目,如果之前没写过的可能需要想一番,首先实现缓存最先想到的就是hashmap,O1级别的查找速度很适合做缓存,然后就是要实现lru,参考redis的zset底层实现,zset也是使用了两个数据结构跳表+hashmap,使用跳表实现排序,我们这里也是使用双向链表实现lru功能,每次查询对应数据的时候就将数据移除重新加到头部,也就是更新使用频率,附上代码如下比较经典的题目,如果之前没写过的可能需要想一番,首先实现缓存最先想到的就是hashmap,O1级别的查找速度很适合做缓存,然后就是要实现lru,参考redis的zset底层实现,zset也是使用了两个数据结构跳表+hashmap,使用跳表实现排序,我们这里也是使用双向链表实现lru功能,每次查询对应数据的时候就将数据移除重新加到头部,也就是更新使用频率//通过自定义节点,hashmap,哨兵节点//删除时通过pre和next指针快速删除节点//添加时只操作头尾,通过哨兵节点快速添加节点class LRUCache {private class Node{//保留key,不然在删除尾结点的时候不能返回key让map也删除//而map又不知道尾结点是哪个int key,value;Node pre,next;Node(int key,int value){this.key=key;this.value=value;}Node(int key,int value,Node pre,Node next){this.key=key;this.value=value;this.pre=pre;this.next=next;}}private int capacity;//通过哨兵节点可以快速找到头结点和尾节点private Node dummy;//通过hashmap快速找到节点,通过节点pre指针和next指针快速实现删除private Map<Integer,Node> map=new HashMap();public LRUCache(int capacity) {this.capacity=capacity;//不能dummy=new Node(-1,-1,dummy,dummy)//这样会导致dummy的pre和next为nulldummy=new Node(-1,-1);dummy.pre=dummy;dummy.next=dummy;}public int get(int key) {if(!map.containsKey(key)) return -1;//如果存在,更新使用频率(加到头部)Node node=map.get(key);remove(node);addFirst(node);return node.value;}public void put(int key, int value) {Node node;if(!map.containsKey(key)){while(map.size()>=capacity){int removeKey=removeLast();map.remove(removeKey);}node=new Node(key,value);addFirst(node);}else{//否则更新数值重新加入node=map.get(key);node.value=value;remove(node);addFirst(node);}map.put(key,node);}public void remove(Node node){Node pre=node.pre;Node next=node.next;pre.next=next;next.pre=pre;}public int removeLast(){Node tail=dummy.pre;remove(tail);return tail.key;}public void addFirst(Node node){//通过哨兵结点快速找到头结点Node head=dummy.next;head.pre=node;node.next=head;dummy.next=node;node.pre=dummy;}}
查看1道真题和解析
点赞 评论 收藏
分享
评论
23
146
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务