所用语言:c++ 。题号用 “剑指XX” 表示的都是剑指上的题,其余都是LeetCode上的题。
计划刷题,3遍以上。
其中,剑指除1题、2题之外,其余全部完整(共66道,3~68)。
2020.02.15 一刷;
2020.04.05 二刷。
加油,努力找一个让自己满意的工作!
该LeedCode笔记参照了下面优秀的博主笔记,并按照他们整理的高频题目来刷的,在此感谢。
博主笔记链接:
https://blog.csdn.net/kk55guang2/article/details/85223256
https://www.cnblogs.com/grandyang/p/4606334.html
页面跳转的方法(即,点击题目可跳转到相应题目解答):
[点击跳转](https://blog.csdn.net/weixin_43330388/article/details/104331278/#jump)
[开始跳](#jump)
文章内容...
<span id="jump">跳到这</span>
(1)LC 01.两数之和
(2)LC 167 两数之和||-输入有序数组
(3)LC 15.三数之和
(4)LC 16.最接近的三数之和
(5)LC 18.四数之和
(6)LC 217.存在重复元素
(7)LC 26. 删除排序数组中的重复项
(8)LC 80. 删除排序数组中的重复项 II 【中等】
(9)LC 349. 两个数组的交集
(10)LC 350. 两个数组的交集 II
(11)LC 228. 汇总区间
(12)LC 334. 递增的三元子序列
(13)LC 66. 加一
(14)LC 283. 移动零
(15)LC 36. 有效的数独 【中等】
(16)LC 48. 旋转图像 【中等】
(17)★★★剑指57.和为s的数字
(18)★★★剑指57 - II. 和为s的连续正数序列
(19)★★★剑指04.二维数组中的查找
(20)★★★剑指03.数组中重复的数字(287. Find the Duplicate Number)
(21)★★★剑指39.数组中出现次数超过一半的数字
(22)★★★剑指53 - I. 在排序数组中查找数字 I(统计一个数字在排序数组中出现的次数)
(23)★★★剑指53 - II. 0~n-1中缺失的数字
(24)★★★剑指66.构建乘积数组
(25)★★★剑指21.调整数组顺序使奇数位于偶数前面
(26)★★★剑指61.扑克牌中的顺子
(27)★★★剑指45.把数组排成最小的数
(28)★★★剑指11.旋转数组的最小数字(189. Rotate Array)【该题归类到了查找与排序(二分)】
(29)★★★剑指51.数组中的逆序对
(1)LC 136. 只出现一次的数字(其余出现2次)
(2)★★★剑指56.2 数组中唯一中出现一次的数字(137. 只出现一次的数字 II(其余出现3次))
(3)★★★剑指56.1 数组中只出现一次的两个数字(260. 只出现一次的数字 III( 找出只出现一次的那两个元素。))
(4)★★★剑指15. 二进制中1的个数(LC191)
(1)★★★剑指05 替换空格
(2)★★★剑指38 字符串的排列(全排列问题)
(3)★★★剑指48 最长不含重复字符的子字符串(3. Longest Substring Without Repeating Characters)
(4)★★★剑指50 第一个只出现一次的字符(387. First Unique Character in a String)
(5)★★★面试题58 - II. 左旋转字符串
(6)★★★面试题58 - I. 翻转单词顺序
(7)★★★剑指67 把字符串转成整数(了解)
(8)★★★剑指19 正则表达式匹配(hard,了解即可)
(9)★★★剑指20 表示数值的字符串(了解即可)
(1)LC 378. 有序矩阵中第K小的元素 【中等】
(2)LC 73. 矩阵置零【中等】
(1)★★★剑指9.1:用两个栈实现队列(LeetCode225)
(2)★★★剑指9.2:用两个队列实现栈(LeetCode232)
(3)★★★剑指30:包含min函数的栈(LeetCode155)
(4)★★★剑指31:栈的压入、弹出序列
(5)★★★剑指59.1:滑动窗口的最大值
(6)★★★剑指59.2:队列的最大值
(1)★★★剑指06.:从尾到头打印链表
(2)★★★剑指24. 反转链表(LC206) ▒☞原题所在地
(3)LC92. 反转链表 II 【中等】▒☞原题所在地
(4)LC 237. 删除链表中的节点
(5)★★★剑指18. 删除链表的节点
(6)LC 83. 删除排序链表中的重复元素Ⅰ
(7)LC 82. 删除排序链表中的重复元素 II 【中等】
(8)★★★剑指22. 链表中倒数第k个节点
(9)LC 19. 删除链表的倒数第N个节点【中等】
(10)★★★剑指52. 两个链表的第一个公共节点(LC161)
(11)★★★剑指23:链表中环的入口节点【中等】(LC142) 以及是否存在环(LC141)
(12)★★★剑指25. 合并两个排序的链表(LC21)
(13)LC 23. 合并K个排序链表
(14)LC 148. 排序链表【中等】
(15)★★★剑指35. 复杂链表的复制【中等】(LC138)
(16)LC 02. 两数相加【中等】
(17)LC 328. 奇偶链表【中等】
(18)LC 234. 回文链表
二叉树的前、中、后序遍历总结(递归&非递归)
(1)★★★剑指32 - I. 从上到下打印二叉树【中等】
(2)★★★剑指32 - II. 从上到下打印二叉树 II
(3)★★★剑指32 - III. 从上到下(之字形)打印二叉树 III(中等)
(4)314.二叉树的竖直遍历【中等】☒ (上锁)
(5)★★★剑指55 - I. 二叉树的深度(LC104)
(6)★★★剑指55 - II. 平衡二叉树(LC110)
(7)★★★剑指28. 对称的二叉树(LC101)
(8)★★★剑指27. 二叉树的镜像(LC226)
(9)★★★剑指26. 树的子结构【中等】(LC572 no)
(10)★★★剑指34. 二叉树中和为某一值的路径【中等】(LC113)
(11)LC 112. 路径总和
(12)LC 124. 二叉树中的最大路径和【困难】
(13)★★★剑指08 二叉树(中序遍历)的下一个结点(LC无)
(14)★★★剑指37.序列化二叉树【困难】(LC297)
重建二叉树知识点
(15)★★★剑指07.重建二叉树(已知前序和中序)【中等】(LC105)
(16)LC106.重建二叉树(已知中序和后序)【中等】
二叉排序树(Binary Sort Tree),又称二叉查找树☟☟☟
(17)LC 98. 验证二叉搜索树【中等】
(18)★★★剑指36. 二叉搜索树与双向链表【中等】(LC426)
(19)★★★剑指33. 二叉搜索树的后序遍历序列【中等】
(20)★★★剑指54. 二叉搜索树的第k大节点
(21)LC 230. 二叉搜索树中第K小的元素【中等】
(22)★★★剑指68 - I. 二叉搜索树的最近公共祖先(LC235)
(23)★★★剑指68 - II. 二叉树的最近公共祖先(LC236)
(24)LC 108. 将有序数组转换为二叉搜索树
二分查找总结
各种排序总结
(1)★★★剑指40. 最小的k个数
(2)LC 215. 数组中的第K个最大元素
(3)★★★剑指41. 数据流中的中位数(LC295)
(4)★★★剑指11. 旋转数组的最小数字(LC154)
(5)LC 33. 搜索旋转排序数组(不存在重复数字)
(6)LC 81. 搜索旋转排序数组 II(存在重复数字)
(7)LC 88. 合并两个有序数组
(8)LC 162. 寻找峰值
(9)LC278. 第一个错误的版本
(10)LC75. 颜色分类(荷兰国旗)
(11)LC347. 前 K 个高频元素
(12)LC56. 合并区间
(1)★★★剑指10- I. 斐波那契数列(LC509)
(2)70. 爬楼梯
(3)★★★剑指10- II. 青蛙跳台阶问题
(4)★★★剑指14- I. 剪绳子
(5)★★★剑指46. 把数字翻译成字符串
(6)★★★剑指42. 连续子数组的最大和
(7)152. 乘积最大子序列
(8)★★★剑指47. 礼物的最大价值
(9)198. 打家劫舍
(10)213. 打家劫舍 II
(11)337. 打家劫舍 III
(12)62. 不同路径
(13)63. 不同路径 II(加了障碍)
(14)300. 最长上升子序列
(15)121. 买卖股票的最佳时机
(16)122. 买卖股票的最佳时机 II
(17)55. 跳跃游戏(中等)
(18)45. 跳跃游戏 II(hard)
(19)322. 零钱兑换
(20)518. 零钱兑换 II(不太懂)[中等]
(1)46. 全排列
(2)77. 组合
(3)78. 子集
(4)784. 字母大小写全排列
(5)257. 二叉树的所有路径
(6)200. 岛屿数量
(7)130. 被围绕的区域
(8)★★★剑指12. 矩阵中的路径(79. 单词搜索)
(9)★★★剑指13. 机器人的运动范围
★★★剑指16 数值的整数次方
(1)★★★剑指17 打印从1到最大的n位数
★★★剑指29 顺时针打印矩阵(可整合到矩阵)
(2)★★★剑指43 1~n整数中1出现的次数【中等】
★★★剑指44 数字序列中某一位的数字
★★★剑指49 丑数
★★★剑指60 n个骰子的点数
(3)★★★剑指62 圆圈中最后剩下的数字(约瑟夫环问题)
★★★剑指63 股票的最大利润
(4)★★★剑指64 求1+2+…+n
(5)★★★剑指65 不用加减乘除做加法
617 合并二叉树 简单
461 汉明距离 简单
226 翻转二叉树 简单
104 二叉树的最大深度 简单
206 反转链表 简单
169 多数元素 简单
538 把二叉搜索树转换为累加树 简单
448 找到所有数组中消失的数字 简单
437 路径总和 III 简单
160 相交链表 简单
53 最大子序和 简单
101 对称二叉树 简单
543 二叉树的直径 简单
20 有效的括号 简单
581 最短无序连续子数组 简单
22 括号生成 中等
338 比特位计数 中等
94 二叉树的中序遍历 中等
39 组合总和 中等
114 二叉树展开为链表 中等
238 除自身以外数组的乘积 中等
208 实现 Trie (前缀树) 中等
64 最小路径和 中等
96 不同的二叉搜索树 中等
406 根据身高重建队列 中等
287 寻找重复数 中等
11 盛最多水的容器 中等
102 二叉树的层序遍历 中等
49 字母异位词分组 中等
647 回文子串 中等
739 每日温度 中等
279 完全平方数 中等
75 颜色分类 中等
399 除法求值 中等
17 电话号码的字母组合 中等
309 最佳买卖股票时机含冷冻期 中等
207 课程表 中等
394 字符串解码 中等
621 任务调度器 中等
146 LRU缓存机制 中等
416 分割等和子集 中等
560 和为K的子数组 中等
139 单词拆分 中等
494 目标和 中等
253 会议室 II 中等
438 找到字符串中所有字母异位词 中等
240 搜索二维矩阵 II 中等
34 在排序数组中查找元素的第一个和最后一个位置 中等
3 无重复字符的最长子串 中等
31 下一个排列 中等
5 最长回文子串 中等
312 戳气球 困难
72 编辑距离 困难
42 接雨水 困难
128 最长连续序列 困难
239 滑动窗口最大值 困难
297 二叉树的序列化与反序列化 困难
301 删除无效的括号 困难
85 最大矩形 困难
84 柱状图中最大的矩形 困难
4 寻找两个正序数组的中位数 困难
76 最小覆盖子串 困难
32 最长有效括号 困难
10 正则表达式匹配 困难