leetcode刷题记录
| 编号 | 题目 | 备注 |
|---|---|---|
| 01 | 两数之和 | |
| 11 | 盛最多水的容器 | |
| 15 | 三数之和 | |
| 16 | 最接近的三数之和 | |
| 18 | 四数之和 | |
| 26 | 删除排序数组中的重复项 | |
| 27 | 移除元素 | |
| 31 | 下一个排列 | |
| 面试题03 | 数组中重复的数字 | 哈希表,代码鲁棒性 |
| 面试题04 | 二维数组中的查找 | 利用递增的规律 |
| 面试题05 | 替换空格 | |
| 面试题11 | 旋转数组的最小数字 | |
| 剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | 双指针降低复杂度 |
| 剑指 Offer 29 | 顺时针打印矩阵 | 模拟 |
| 剑指 Offer 39 | 数组中出现次数超过一半的数字 | 利用性质:投票法 |
| 剑指 Offer 40 | 最小的k个数 | 堆或者快排思想(☆) |
| 剑指 Offer 41 | 数据流中的中位数 | 堆 |
| 剑指 Offer 42 | 连续子数组的最大和 | 贪心算法或动态规划,最优化问题 |
| 剑指 Offer 43 | 1~n整数中1出现的次数 | 找规律 |
| 剑指 Offer 44 | 数字序列中某一位的数字 | 找规律 |
| 剑指 Offer 45 | 把数组排成最小的数 | 建立新的比较规则 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 20 | 有效的括号 | |
| 面试题09 | 用两个栈实现队列 | |
| 剑指 Offer 30 | 包含min函数的栈 | 构造辅助栈,减小复杂度 |
| 剑指 Offer 31 | 栈的压入、弹出序列 | 通过模拟来解决 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 编号 | 题目 | 备注 |
|---|---|---|
| 2 | 两数相加 | |
| 19 | 删除链表的倒数第N个节点 | |
| 21 | 合并两个有序链表 | |
| 24 | 两两交换链表中的节点 | |
| 面试题06 | 从尾到头打印链表 | |
| 面试题18 | 删除链表的节点 | |
| 剑指 Offer 22 | 链表中倒数第k个节点 | 双指针 |
| 剑指 Offer 24 | 反转链表 | |
| 剑指 Offer 25 | 合并两个排序的链表 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 树的解法一般都有递归和迭代两种 | ||
| 面试题07 | 重建二叉树 | |
| 剑指 Offer 26 | 树的子结构 | |
| 剑指 Offer 27 | 二叉树的镜像 | 递归交换左右节点 |
| 剑指 Offer 28 | 对称的二叉树 | 根据性质:左右对称,递归 |
| 剑指 Offer 32 - I | 从上到下打印二叉树 | 层序遍历 |
| 剑指 Offer 32 - II | 从上到下打印二叉树 II | 层序遍历 |
| 剑指 Offer 32 - III | 从上到下打印二叉树 III | 层序遍历 |
| 剑指 Offer 33 | 二叉搜索树的后序遍历序列 | 基于性质,逆序后序遍历的输出再使用单调栈 |
| 剑指 Offer 33 | 二叉搜索树的后序遍历序列 | |
| 剑指 Offer 34 | 二叉树中和为某一值的路径 | 回溯法,迭代法 |
| 剑指 Offer 36 | 二叉搜索树与双向链表 | 基于性质:中序遍历 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 02 | 两数相加 | |
| 07 | 整数反转 | |
| 08 | 字符串转换整数 (atoi) | |
| 09 | 回文数 | |
| 12 | 整数转罗马数字 | |
| 13 | 罗马数字转整数 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 03 | 无重复字符的最长子串 | 滑动窗口 |
| 05 | 最长回文子串 | |
| 06 | Z 字形变换 | |
| 08 | 字符串转换整数 (atoi) | |
| 12 | 整数转罗马数字 | |
| 13 | 罗马数字转整数 | |
| 14 | 最长公共前缀 | |
| 17 | 电话号码的字母组合 | |
| 20 | 有效的括号 | |
| 22 | 括号生成 | |
| 28 | 实现 strStr() | KMP算法(☆) |
| 剑指 Offer 20 | 表示数值的字符串 | 有限状态自动机 |
| 剑指 Offer 50 | 第一个只出现一次的字符 | 哈希表 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 面试题14- I | 剪绳子 | |
| 面试题14- II | 剪绳子 II | |
| 剑指 Offer 42 | 连续子数组的最大和 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 面试题12 | 矩阵中的路径 | |
| 面试题17 | 打印从1到最大的n位数 | 大数问题 |
| 剑指 Offer 35 | 复杂链表的复制 | 此题把链表当成图来理解,DFS和BFS都能用 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 面试题13 | 机器人的运动范围 | |
| 剑指 Offer 37 | 序列化二叉树 | 层序遍历 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 03 | 无重复字符的最长子串 | |
| 11 | 盛最多水的容器 | |
| 15 | 三数之和 | |
| 16 | 最接近的三数之和 | |
| 18 | 四数之和 | |
| 19 | 删除链表的倒数第N个节点 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 面试题14- I | 剪绳子 | |
| 面试题14- II | 剪绳子 II | |
| 面试题19 | 正则表达式匹配 | 困难,主要状态分析 |
| 剑指 Offer 42 | 连续子数组的最大和 | |
| 剑指 Offer 46 | 把数字翻译成字符串 | |
| 剑指 Offer 47 | 礼物的最大价值 | |
| 剑指 Offer 48 | 最长不含重复字符的子字符串 | 滑动窗口 |
| 剑指 Offer 49 | 丑数 | 找规律,状态转移分析困难 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 面试题10- I | 斐波那契数列 | |
| 面试题10- II | 青蛙跳台阶问题 | |
| 面试题17 | 打印从1到最大的n位数 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 17 | 电话号码的字母组合 | |
| 22 | 括号生成 | |
| 面试题12 | 矩阵中的路径 | |
| 面试题13 | 机器人的运动范围 | |
| 剑指 Offer 34 | 二叉树中和为某一值的路径 | 回溯法 |
| 剑指 Offer 38 | 字符串的排列 | 交换位置很巧妙 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 剑指 Offer 33 | 二叉搜索树的后序遍历序列 | 递归分治 |
| 编号 | 题目 | 备注 |
|---|---|---|
| 29 | 两数相除 | |
| 面试题15 | 二进制中1的个数 |