面试40+总结下面试手撕的题目
本篇为本人实习+秋招面试被考到的手撕算法题和编码题总结
首先是算法题:
1. 算法题部分,有很多题是非常高频的,仅仅从我个人的面试体验就能看出来,最为突出的就是LRU,到了最后我已经可以在8分钟以内写完一次LRU了
2. hot100在其中的比例为7/20,但是如果算上重复的,那就超过50%了;另外还会有一些题目是从hot100的做题思想就能拓展出去的
3. 无他,唯手熟尔
需要编码的场景题通常涉及几个方面的思想:外部多路归并排序;位运算;拒绝采样;大模拟;特殊数据结构
有一说一在面试后,我的这方面思想也得到了很大的提升
⭐算法题(除去重复题目,共20道):
➡️ 打家劫舍(力扣No.198,hot100,简单)
➡️ 树的路径总和 ×2(力扣No.112,简单)
➡️ LRU缓存 ×5(力扣No.146,hot100,中等)
➡️ 最小栈 (力扣No.155,hot100,中等)
➡️ 重排链表 ×2(力扣No.143,中等)
➡️ 螺旋矩阵II(力扣No.59,中等)
➡️ 最大子数组和(力扣No.53,中等)
➡️ 合并区间 ×2(力扣No.56,hot100,中等)
➡️ 岛屿数量 ×2(力扣No.200,中等)
➡️ 二叉树的层序遍历 ×2(力扣No.102,hot100,中等)
➡️ 寻找峰值(力扣No.162,中等)
➡️ 翻转链表II(力扣No.92,中等)
➡️ 快排 ×2(中等)
➡️ 数组中第k大的数,要求堆排序思想写 ×2次(力扣No.215,hot100,中等)
➡️ 字符串中最长无重复字符的子串(力扣No.3,hot100,中等)
➡️ 分发糖果(力扣No.135,困难)
➡️ 小于n的最大数(字节高频题,非力扣,困难)
➡️ 寻找旋转排序数组中的最小值(力扣No.153,中等)
➡️ 整数反转(No.7,中等)
➡️ n个六面的骰子,扔一次之后和为k的概率是多少(中等)
⭐场景模拟题:
➡️ 两个线程交替输出1-100
➡️ 两个复杂字典,如何将字典1通过一些规定好的操作变成字典2
➡️ 长为8位的无重复大量数据,如何从小到大输出?如果内存不够一次全部读入呢?
➡️ 如果有10亿个32位的整数,如何找出那些只出现过一次的数?内存有限,无法一次性读入全部数据,另外时间复杂度越低越好
⭐特殊题:
➡️ 实现一个无锁的线程安全的循环队列 ×2,一次Java一次Go
➡️ 给定一个数组,如何用最小的比较次数获得最大最小值
➡️ 有一个rand函数,生成1的概率是p,0的概率是1-p,那么如何用它生成一个rand2(),使得生成1和0的概率都是0.5
➡️ 用rand7()函数构造函数rand10()
➡️ 带超时时间的LRU缓存
➡️ 实现一个单例模式
加油💪🏻祝大家都有自己满意的offer!
#发面经攒人品##后端##java##秋招##offer决赛圈,我是怎么选的#
首先是算法题:
1. 算法题部分,有很多题是非常高频的,仅仅从我个人的面试体验就能看出来,最为突出的就是LRU,到了最后我已经可以在8分钟以内写完一次LRU了
2. hot100在其中的比例为7/20,但是如果算上重复的,那就超过50%了;另外还会有一些题目是从hot100的做题思想就能拓展出去的
3. 无他,唯手熟尔
需要编码的场景题通常涉及几个方面的思想:外部多路归并排序;位运算;拒绝采样;大模拟;特殊数据结构
有一说一在面试后,我的这方面思想也得到了很大的提升
⭐算法题(除去重复题目,共20道):
➡️ 打家劫舍(力扣No.198,hot100,简单)
➡️ 树的路径总和 ×2(力扣No.112,简单)
➡️ LRU缓存 ×5(力扣No.146,hot100,中等)
➡️ 最小栈 (力扣No.155,hot100,中等)
➡️ 重排链表 ×2(力扣No.143,中等)
➡️ 螺旋矩阵II(力扣No.59,中等)
➡️ 最大子数组和(力扣No.53,中等)
➡️ 合并区间 ×2(力扣No.56,hot100,中等)
➡️ 岛屿数量 ×2(力扣No.200,中等)
➡️ 二叉树的层序遍历 ×2(力扣No.102,hot100,中等)
➡️ 寻找峰值(力扣No.162,中等)
➡️ 翻转链表II(力扣No.92,中等)
➡️ 快排 ×2(中等)
➡️ 数组中第k大的数,要求堆排序思想写 ×2次(力扣No.215,hot100,中等)
➡️ 字符串中最长无重复字符的子串(力扣No.3,hot100,中等)
➡️ 分发糖果(力扣No.135,困难)
➡️ 小于n的最大数(字节高频题,非力扣,困难)
➡️ 寻找旋转排序数组中的最小值(力扣No.153,中等)
➡️ 整数反转(No.7,中等)
➡️ n个六面的骰子,扔一次之后和为k的概率是多少(中等)
⭐场景模拟题:
➡️ 两个线程交替输出1-100
➡️ 两个复杂字典,如何将字典1通过一些规定好的操作变成字典2
➡️ 长为8位的无重复大量数据,如何从小到大输出?如果内存不够一次全部读入呢?
➡️ 如果有10亿个32位的整数,如何找出那些只出现过一次的数?内存有限,无法一次性读入全部数据,另外时间复杂度越低越好
⭐特殊题:
➡️ 实现一个无锁的线程安全的循环队列 ×2,一次Java一次Go
➡️ 给定一个数组,如何用最小的比较次数获得最大最小值
➡️ 有一个rand函数,生成1的概率是p,0的概率是1-p,那么如何用它生成一个rand2(),使得生成1和0的概率都是0.5
➡️ 用rand7()函数构造函数rand10()
➡️ 带超时时间的LRU缓存
➡️ 实现一个单例模式
加油💪🏻祝大家都有自己满意的offer!
#发面经攒人品##后端##java##秋招##offer决赛圈,我是怎么选的#
全部评论
hot100刷了一半多,自己做一次,但感觉第二天就又忘了,差不多半背的状态,感觉出点其他的就不会了
太牛了哥,我hot100才刷了一半,明天有个面试,按你的来突击了。。
强
相关推荐

点赞 评论 收藏
分享