一大波手撕正在靠近!

面试时候的手撕其实很少出得特别难,基本都是middle,考验你的基础,所以这里面是有一些高频考点的,我根据个人经历整理了一些比较通用的经典的手撕。

🛠️ 数据结构与算法(典中典

  1. LRU缓存 :HashMap 存值,双向链表 存序。思路: 读写都把节点拔出来插到链表头,容量满了删链表尾。
  2. K个一组翻转链表: 递归/迭代 + 局部翻转。思路: 够K个就断开翻转,不够直接还回;递归拼接下一组的结果。
  3. 合并K个升序链表: 最小堆 (PriorityQueue)。思路: 把所有链表的头结点扔进堆里,每次弹最小的连上,把它的next再扔进去。
  4. 无重复字符的最长子串: 滑动窗口 + 哈希/Set。思路: 右指针狂奔进窗,遇到重复的,左指针收缩直到重复元素滚粗。
  5. 接雨水 (Hard): 双指针 / 单调栈。思路: 左右双指针往中间缩,当前格水 = min(左max, 右max) - 只有地高。
  6. 二叉树的最近公共祖先 (LCA): 后序遍历 (左右根)。思路: 左右都找到了回Root,只找到左回左,只找到右回右,都空回Null。
  7. 岛屿数量: DFS + 沉岛思想。思路: 遇到 '1' 计数加一,然后开启DFS把上下左右所有的 '1' 全变成 '0' (炸沉)。
  8. 最长公共子序列 (LCS): 二维DP。思路: 相等则 dp[i-1][j-1] + 1,不等则取 max(左边, 上边) 继承最大值。
  9. 搜索旋转排序数组: 二分查找 + 判断有序区间。思路: 切一刀必定有一半是有序的,判断target在不在有序的那半里,不在就去另一半找。
  10. 下一个排列: 找小数,找大数,交换,翻转。思路: 从后往前找第一个降序的数A,再找刚比A大的数B,交换AB,把A后面全部翻转成升序。

🧵 多线程类

  1. 单例模式 (Singleton): DCL (双重检查锁) + volatile。思路: 两次判空,锁在中间;volatile 禁止指令重排,防对象半初始化。
  2. 生产者-消费者:wait/notify 或 Condition。思路:while(队列满) wait,while(队列空) wait,操作完记得 notifyAll。
  3. 三个线程交替打印 ABC: 信号量 (Semaphore) 或 state 变量。思路: A线程等A信号发B信号,B线程等B信号发C信号...形成闭环。
  4. 死锁演示: 嵌套锁。思路: 线程1拿锁A想拿B,线程2拿锁B想拿A,互相不撒手。

🧠 排序(年年考年年错

快速排序 (QuickSort): 分治 + Partition。思路: 选个基准(Pivot),小的甩左边,大的甩右边,递归搞定左右两边。

#一人分享一道面试手撕题#
全部评论
mark
1 回复 分享
发布于 01-06 10:51 广东
单例模式,如果是c++11以上的话可以直接返回静态局部变量,可以保证全局唯一的
点赞 回复 分享
发布于 昨天 21:47 四川
Mark
点赞 回复 分享
发布于 昨天 19:45 辽宁
Mark
点赞 回复 分享
发布于 昨天 19:08 贵州
mark
点赞 回复 分享
发布于 昨天 18:48 江西
Mark
点赞 回复 分享
发布于 昨天 16:25 黑龙江
Mark
点赞 回复 分享
发布于 昨天 16:21 北京
Mark
点赞 回复 分享
发布于 昨天 15:47 上海
mark
点赞 回复 分享
发布于 昨天 15:15 广东
mark
点赞 回复 分享
发布于 昨天 14:30 江苏
mark
点赞 回复 分享
发布于 昨天 14:29 北京
再多来点佬
点赞 回复 分享
发布于 昨天 11:40 天津
mark
点赞 回复 分享
发布于 昨天 11:36 广东
Mark
点赞 回复 分享
发布于 昨天 10:44 广东
Mark
点赞 回复 分享
发布于 昨天 00:59 江苏
Mark
点赞 回复 分享
发布于 01-06 22:27 广东
Mark
点赞 回复 分享
发布于 01-06 19:00 广东
mark
点赞 回复 分享
发布于 01-06 17:13 北京
Mark
点赞 回复 分享
发布于 01-06 16:49 北京
Mark
点赞 回复 分享
发布于 01-06 14:39 浙江

相关推荐

哞客37422655...:嫡系回归,buff叠满!好好干,等你们组明年把你当嫡长继承人的时候再请我们喝奶茶~
点赞 评论 收藏
分享
等闲_:小红书基本不区分日常和暑期,你是应届实习时间够了就有转正机会,只要部门有hc
点赞 评论 收藏
分享
老粉都知道小猪猪我很久没更新了,因为秋招非常非常不顺利,emo了三个月了,接下来说一下我的情况吧本人是双非本 专业是完全不着计算机边的非科班,比较有优势的是有两段大厂实习,美团和字节。秋招面了50+场泡池子泡死的:滴滴 快手 去哪儿 小鹏汽车 不知名的一两个小厂其中字节13场 两次3面挂 两次2面挂 一次一面挂其中有2场面试题没写出来,其他的都是全a,但该挂还是挂,第三次三面才面进去字节,秋招加暑期总共面了22次字节,在字节的面评可以出成书了快手面了8场,2次实习的,通过了但没去,一次2面挂 最后一次到录用评估 至今无消息滴滴三面完 没几天挂了 所有技术面找不出2个问题是我回答不上来的,三面还来说我去过字节,应该不会考虑滴滴吧,直接给我干傻了去哪儿一天速通 至今无消息小鹏汽车hr 至今无消息美团2面挂 然后不捞我了,三个志愿全部结束,估计被卡学历了虾皮二面挂 这个是我菜,面试官太牛逼了拼多多二面挂 3道题也全写了 也没问题是回答不出来的 泡一周后挂腾讯面了5次 一次2面挂 三次一面挂,我宣布腾讯是世界上最难进的互联网公司然后还有一些零零散散的中小厂,但是数量比较少,约面大多数都是大厂。整体的战况非常惨烈,面试机会少,就算面过了也需要和各路神仙横向对比,很多次我都是那个被比下去的人,不过这也正常,毕竟谁会放着一个985的硕士不招,反而去招一个双非读化学的小子感觉现在互联网对学历的要求越来越高了,不仅仅要985还要硕士了,双非几乎没啥生存空间了,我感觉未来几年双非想要进大厂开发的难度应该直线上升了,唯一的打法还是从大二刷实习,然后苟个转正,不然要是去秋招大概率是炮灰。而且就我面字节这么多次,已经开始问很多ai的东西了,你一破本科生要是没实习没科研懂什么ai啊,纯纯白给了
不知名牛友_:爸爸
秋招你被哪家公司挂了?
点赞 评论 收藏
分享
评论
63
325
分享

创作者周榜

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