Java研发岗必背算法82道

一、写在前面

有⼀些题我们不管是什么难度都必须掌握的 Hard会⼀些⾼频即可;
主攻Medium,反复做,略加回忆思考就可以写出;
Easy的题⼀秒钟都不许卡 这不是竞赛,真的不需要智⼒,只需要你努⼒,不断重复+少量思考总结即可。 
没那么多⼈有时间给你出新题,绝⼤多数正常⾯试都是原题。  
字节等公司可能让你⾃⼰写测试⽤例,平时注意练⼀下  
作者目标:吃透一道就换成超链接

二、必会

快速排序、归并排序、堆排序最好会写。卡⼀下都不⾏,没事就写着玩看最快多久能写完 
⼆叉树的前中后序、层序遍历、Z字遍历。迭代法写,递归⼀共那⼏⾏谁不会啊 
反转链表。各种反,直接反,反⼀段,K个⼀组全反,K个⼀组不够K个不反 
接⾬⽔!!!单调栈 
股票买卖!
机器⼈寻路!!动态规划! 回溯法也很容易考,这是⼀种思想经常与树和其他结合 
字符串的题最多变,有双指针滑动窗⼝还有动态规划还有其他很烦 
LRU必须⾄少独⽴写出来10次bugfree,LFU这个⾄少5次吧

三、Hard难度15道

刷这些就⾏,Hard不要刻意追求,真被考到范围外的概率极其⼩,估计⾯试官⼼情很不好==!

25. K 个⼀组翻转链表
23. 合并K个排序链表
42. 接雨水
43. ⼆叉树中的最⼤路径和
72. 编辑距离
4. 寻找两个正序数组的中位数
46. 最⼩覆盖⼦串
47. 滑动窗⼝最⼤值
48. 缺失的第⼀个正数
49. 最⻓有效括号
50. ⼆叉树的序列化与反序列
51. LFU缓存
剑指 Offer 51. 数组中的逆序对
52. 基本计算器
53. 分发糖果

四、Medium难度67道

中等难度必须要掌握

3. ⽆重复字符的最⻓⼦串
146. LRU缓存机制
215. 数组中的第K个最⼤元素
15. 三数之和
102. ⼆叉树的层序遍历
103. ⼆叉树的锯⻮形层次遍历
236. ⼆叉树的最近公共祖先
33. 搜索旋转排序数组
5. 最⻓回⽂⼦串
200. 岛屿数量
46. 全排列
92. 反转链表 II
142. 环形链表 II
54. 螺旋矩阵
300. 最⻓上升⼦序列
143. 重排链表
199. ⼆叉树的右视图
56. 合并区间
19. 删除链表的倒数第N个节点
82. 删除排序链表中的重复元素 II
8. 字符串转换整数 (atoi)
148. 排序链表
2. 两数相加
151. 翻转字符串⾥的单词
93. 复原IP地址
105. 从前序与中序遍历序列构造⼆叉树
31. 下⼀个排列
1143. 最⻓公共⼦序列
22. 括号⽣成
129. 求根到叶⼦节点数字之和
113. 路径总和 II
98. 验证⼆叉搜索树
43. 字符串相乘
78. ⼦集
470. ⽤ Rand7() 实现 Rand10()
322. 零钱兑换
64. 最⼩路径和
718. 最⻓重复⼦数组
48. 旋转图像
165. ⽐较版本号
39. 组合总和
34. 在排序数组中查找元素的第⼀个和最后⼀个位置
153. 寻找旋转排序数组中的最⼩值
62. 不同路径
128. 最⻓连续序列
221. 最⼤正⽅形
240. 搜索⼆维矩阵 II
24. 两两交换链表中的节点
695. 岛屿的最⼤⾯积
198. 打家劫舍
498. 对⻆线遍历
662. ⼆叉树最⼤宽度
79. 单词搜索
145. ⼆叉树的后序遍历
402. 移掉K位数字
59. 螺旋矩阵 II
230. ⼆叉搜索树中第K⼩的元素
328. 奇偶链表
61. 旋转链表
50. Pow(x, n)
47. 全排列 II
450. 删除⼆叉搜索树中的节点
74. 搜索⼆维矩阵
189. 旋转数组
40. 组合总和 II
11. 盛最多⽔的容器
114. ⼆叉树展开为链表

你可能感兴趣的:(leetcode,数据结构,算法,java,数据结构)