友塔一面凉经
1. 笔试复盘
2. 数据库选择B+树做索引的必要性是什么?
3. 浮点数的编码
4. 堆排序如何实现的?它是怎么在不开辟额外数组的情况下实现排序的?堆里面正常都是pop堆顶元素,如果想pop任意位置的元素,该如何实现?
5. shuffle算法是如何实现的?怎么用数学公式证明算法的正确性?
6. Socket网络编程的步骤是什么?
7. 嘴撕算法题:一个8位二进制数形成一个环,某一次操作中你可以翻转二进制中的一位,但同时它左右相邻的两位也必须进行翻转。怎么在操作次数最少的情况下使得这个8位二进制数变为全1?求出这个操作序列。(给了bfs的想法)
8. 假如上面的8位二进制数变成80w位,又该怎么求?(不会,面试官给出了两个提示,1.对任意一位操作两次等于没操作。2.如果第n-2位是确定的,对第n位操作只会影响第n-1位。大致解题思路就是先枚举第0,1位可能的组合,从第2位开始,根据第n-1位是0还是1,决定第n位该不该翻转。最后由于第799999位和第0位是不确定的,要看看这两位是不是1。)
总共面试时间65min,暂时就记得这些问题,面试官很亲切,一步步引导你。没准备充分,很多问题没见到过想不出来。
2. 数据库选择B+树做索引的必要性是什么?
3. 浮点数的编码
4. 堆排序如何实现的?它是怎么在不开辟额外数组的情况下实现排序的?堆里面正常都是pop堆顶元素,如果想pop任意位置的元素,该如何实现?
5. shuffle算法是如何实现的?怎么用数学公式证明算法的正确性?
6. Socket网络编程的步骤是什么?
7. 嘴撕算法题:一个8位二进制数形成一个环,某一次操作中你可以翻转二进制中的一位,但同时它左右相邻的两位也必须进行翻转。怎么在操作次数最少的情况下使得这个8位二进制数变为全1?求出这个操作序列。(给了bfs的想法)
8. 假如上面的8位二进制数变成80w位,又该怎么求?(不会,面试官给出了两个提示,1.对任意一位操作两次等于没操作。2.如果第n-2位是确定的,对第n位操作只会影响第n-1位。大致解题思路就是先枚举第0,1位可能的组合,从第2位开始,根据第n-1位是0还是1,决定第n位该不该翻转。最后由于第799999位和第0位是不确定的,要看看这两位是不是1。)
总共面试时间65min,暂时就记得这些问题,面试官很亲切,一步步引导你。没准备充分,很多问题没见到过想不出来。
全部评论
算法也太难了叭
老哥你这是服务端吗
怎样知道知道自己过没过呀?友塔官网也没有流程,昨天面的,今天没消息就是挂了吗?
兄弟,是电话面吗?
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享