光锥云Java面经
怎么说呢...hc不够没通过,放上面给大家参考一下吧。
ps:实际上还有很多其他的点没有写到,但是也是大概都写上去了。三场面试中间都隔了20分钟,面试到第三轮已经是18:30了,面试官很不容易,我也..有点累的说不出话的感觉(本来要给我妈做饭的,结果也没有...)。
光锥云笔试
光锥云笔试 3.5
搭圆柱(最大递增子序列)
给定n个空心圆柱(内半径r,厚度s,高度h),将他们搭起来最大能达到多高。如果 rj+sj>=ri+si 并且 ri+si >= rj 才能将 木头i 放到 木头j 上面。
买口罩(模拟题)
一开始有m个口罩,经过n天,能否增加到达k个。每一天,可以选择 1. 出门买3个口罩,但是出门浪费1个。 2. 出门不买口罩,浪费一个口罩 3. 不出门,口罩不变 。
如果能到达k个则输出所有可能的 出门次数,买口罩次数。否则输出-1 -1;
例如:3,3,3 (3个口罩、3天、增加到3个)
结果:
0 0 不出去
3 1 三天出去一天买口罩
找数字(脑筋急转弯题)
有个n个整数的数组arr,其中有个数字出现次数超过一半,通过O(n)时间复杂度,O(1)空间复杂度 找出这个数字。
例如:[1,2,3,1,1] 结果:1
判断时间连续(贪心)
有n个事件的数组arr,事件包括开始时间start和持续时间duration。找出这n个事件时间是否覆盖 给定的开始时间和结束时间。
例如: [{1,2},{1,3},{2,5}] 给定的开始时间和结束时间: 1,5 。结果为true。
同上如果给定的是 4,6 则为false。
这个题最后还写了一句:
这道题还有一个较难的版本,找出一段时间内最多能有多少不重复的事件(也是贪心)。
光锥云一面、二面、三面不确定到底是哪一面的面试问题
一面
- 前面还问了很多基础题目,忘记了,感觉这一问主要就是问算法....
- 排序算法了解么?说一下堆排序。
- 算法1:链表判断是否成环?说的快慢指针,然后追问怎么确定环开始的位置?说的重合的快指针再重新往前跑并计数直到再次重合。
- 算法2:一个整数n计算n转二进制 后1的个数。不断n&1然后 n>>1
- 算法3:二叉树 计算每一层的数字的和。(层次遍历、开数组遍历)
- 算法4:队列怎么实现优先队列。(大顶堆或者先排序好再插入)
- 算法5:(我服了!问了我一个leetcode困难的题目)leetcode跳跃游戏二 第一次没给出最优解O(n^2),他问能不能优化想了一会给出了最优解O(n)。
二面
- 二值化怎么实现?
- redis数据类型?线程模型?redis管道?
- redis管道不会,说知道操作系统管道,就说了下进程通信
- HashMap相关、线程安全的HashMap;
- 可重入锁怎么实现
- CAS说一下
- 数据库优化?索引?
- 平衡二叉树怎么实现?说了AVL树
- 算法1:leetcode打家劫舍 给出了最优解
- 算法2:leetcode打家劫舍2 给出了最优解
- sinx求[0,1]区间的面积(数学微积分)。这个***的不会...
三面
- 二值化怎么实现?
- 视频通话怎么实现的?TCP的特点与UDP区别?
- hashMap?解决冲突的方式需要注意什么?hashMap的头插与尾插?
- String为什么不可变
- 锁synchronized为啥改版成锁膨胀的模式。
- 单核单线程CPU是否可以运行多线程程序?多线程与CPU单线程区别(系统线程和用户线程)?
- 说下跳表?查询时间复杂度?对比平衡二叉树(不会,就说了二叉树稳定,跳表加锁方便)?
- 线程的状态
- 反射机制有哪些性能问题
- AOP
- 愿意尝试别的开发么
整个面试个人感觉还好,尤其是一二面 基本所有问题都回答了,无奈后续沟通说可能没有hc了,就凉掉了。
吸一下牛客网的大佬欧气,希望能尽快拿到offer。
#光锥云##光锥元科技##Java工程师##校招##面经##笔经#