日期 | 题目 | 题目难度 | 类型 | 备注 | 复习 |
---|---|---|---|---|---|
20210407 20210415 |
#26 删除有序数组中的重复项 #80. 删除有序数组中的重复项 II |
简单 中等 |
数组 数组 |
双指针 链接 |
✨ ✨ |
20210407 | #27 移除元素 | 简单 | 数组 | ||
20210408 | #989 数组形式的整数加法 | 简单 | 数组 | ||
20210409 | #189 旋转数组 | 中等 | 数组 | 数组翻转(想不到!) 💡环状置换(一开始写错了) |
✨ |
20210414 | #面试题 17.04 消失的数字 | 简单 | 数组 | 异或! | |
20210414 | #剑指 Offer 56 - I 数组中数字出现的次数 | 中等 | 数组 | 异或! | |
20210414 | #剑指 Offer 18 删除链表的节点 | 简单 | 链表 | ||
20210414 | #面试题 02.03 删除中间节点 #237 删除链表中的节点 |
简单 | 链表 | ||
20210414 20210415 20210415 |
#19 删除链表的倒数第 N 个结点 #剑指 Offer 22 链表中倒数第k个节点 #面试题 02.02 返回倒数第 k 个节点 |
中等 简单 简单 |
链表 链表 链表 |
双指针 | |
20210415 | #83 删除排序链表中的重复元素 | 简单 | 链表 | 一次遍历,一个指针就能搞定,不需要哑节点 | |
20210415 | #82 删除排序链表中的重复元素 II | 中等 | 链表 | 一次遍历,一个指针就能搞定,有哑节点更方便 | |
20210415 | #1646 获取生成数组中的最大值 | 简单 | 数组 | 开辟空间,不知道有没有更好的解法? | |
20210415 | #206 反转链表 | 简单 | 链表 | 迭代 递归!!! |
✨ |
20210415 | #203 移除链表元素 | 简单 | 链表 | 双指针 递归!!! |
|
20200415 | #876 链表的中间结点 | 简单 | 链表 | 双指针 | |
20210522 | #810 黑板异或游戏 | 困难 | 数组 | 数学 | |
20210523 | #1 两数之和 | 简单 | 数组 | 哈希表 | |
20210523 | #3 无重复字符的最长子串 | 中等 | 数组 | 滑动窗口+哈希表 | ✨ |
20210523 | #11 盛最多水的容器 | 中等 | 数组 | 双指针!! | |
20210528 | #剑指 Offer 56 - II 数组中数字出现的次 数 |
中等 | 数组 | 哈希表 位运算 有限自动机!!! |
|
20210528 | #477 汉明距离总和 | 中等 | 数组 | 逐位计算 | |
20210530 | #231 2 的幂 | 简单 | 数学 | 位运算 1. n & (n - 1) == 0 2. lowbit(n) |
|
20210531 | #342 4的幂 | 简单 | 数学 | 位运算 1. 掩码方式 mask 2. 位运算+模运算 |
|
20210531 | #326 3的幂 | 简单 | 数学 | 1. 按题求解 2. 迭代循环 |
|
20210601 | #69 x 的平方根 | 简单 | 二分 | 二分查找 | |
20210601 | #374 猜数字大小 | 简单 | 二分 | 二分(模板1) | |
20210601 | #278 第一个错误的版本 | 简单 | 二分 | 二分(模板1) | |
20210602 | #162 寻找峰值 | 中等 | 二分 | 二分(模板2) | |
20210602 | #658 找到 K 个最接近的元素 | 中等 | 二分 | 💡有点难! | |
20210602 | #4 寻找两个正序数组的中位数 | 困难 | 二分 | 💡有点难! | |
20210603 | #34 在排序数组中查找元素的第一个和最后一个位置 | 中等 | 二分 | 💎💎经典! 二分(模板2) |
|
20210603 | #33 搜索旋转排序数组 | 中等 | 二分 | 💎二分(模板1) | |
20210603 | #81 搜索旋转排序数组 II | 中等 | 二分 | 33进阶版(模板1) | |
20210603 | #852 山脉数组的峰顶索引 | 简单 | 二分 | 判断mid与mid+1元素的相对大小,需要用到模板2 | |
20210613 | #153 寻找旋转排序数组中的最小值 | 中等 | 二分 | 与33,81不同的是将寻找目标值改为找最小值 | |
20210613 | #704 二分查找 | 简单 | 二分 | 二分(模板1) | |
20210613 | #35 搜索插入位置 | 简单 | 二分 | 二分(模板2) | |
20210613 | #50 Pow(x, n) | 中等 | 二分 | 递归类型的二分 | |
20210613 | #367 有效的完全平方数 | 简单 | 二分 | 用long类型保存平方 | |
20210613 | #744 寻找比目标字母大的最小字母 | 简单 | 二分 | 二分(模板2) | |
20210613 | #154 寻找旋转排序数组中的最小值 II #剑指 Offer 11 旋转数组的最小数字 |
困难 | 二分 | 153的进阶版,允许重复 | |
20210613 | #349 两个数组的交集 | 简单 | 二分 | 多次二分 - 哈希表 - 排序+双指针 |
|
20210614 | #350 两个数组的交集 II | 简单 | 二分 | 用不了二分了 - 哈希表 - 排序+双指针 |
|
20210614 | #167 两数之和 II - 输入有序数组 | 简单 | 数组 | - 双指针 - 多次二分 |
✨ |
20210614 | #287 寻找重复数 剑指offer 13. 找出数组中重复的数字 #剑指 Offer 03 数组中重复的数字 |
中等 | 二分 | 💡有点难(二分) - 按位求解 - 统计个数 |
抽屉原理
快慢指针(类似于环形链表) | ✨ |
| 20210614 | #29 两数相除 | 中等 | 二分 | 二分法(模板2)
倍增乘法模板 | |
| 20210614 | #1095 山脉数组中查找目标值 | 困难 | 二分 | 852的进阶,找到峰顶元素后再找目标元素的最小索引 | |
| 20210615 | #392 判断子序列 | 简单 | 二分 | 排序+二分!太烂
💡后续。。。 | |
| 20210615 | #74 搜索二维矩阵 | 中等 | 二分 | 两次二分
模板1和模板2 | |
| 20210615 | #441 排列硬币 | 简单 | 二分 | 二分(模板2) | |
| 20210615 | #面试题 08.03 魔术索引 | 简单 | 第一问:二分
第二问:跳跃线性 | 二分
跳跃线性 | |
| 20210616 | #509 斐波那契数 | 简单 | 动态规划 |
- 动态规划
- 递归
| |
| 20210616 | #70 爬楼梯 | 简单 | 动态规划 |
- 动态规划
| |
| 20210616 | #746 使用最小花费爬楼梯 | 简单 | 动态规划 |
- 动态规划
考虑如何结束的问题 | |
| 20210616 | #62 不同路径 | 中等 | 动态规划 |
- 深度搜索(慢)
- 动态规划
- 数论()
| |
| 20210618 | #63 不同路径 II | 中等 | 动态规划 |
- 动态规划
| |
| 20210618 | #64 最小路径和 | 中等 | 动态规划 |
- 动态规划
| |
| 20210618 | #120 三角形最小路径和 | 中等 | 动态规划 |
- 动态规划
| |
| 20210618 | #343 整数拆分 | 中等 | 动态规划 |
- 动态规划
- 贪心
| |
| 20210618 | #483 最小好进制 | 困难 | 二分 | 💡 | |
| 20210618 | #931 下降路径最小和 | 中等 | 动态规划 |
- 动态规划
| |
| 20210619 | #1289 下降路径最小和 II | 困难 | 动态规划 |
- 动态规划
| |
| 20210620 | #1600 皇位继承顺序 | 中等 | 链表,树 | | |
| 20210620 | #1575 统计所有可行路径 | 困难 | 动态规划 |
- 动态规划
- 记忆化搜索
| |
| 20210620 | #576 出界的路径数 | 中等 | 动态规划 |
- 动态规划
| |
| 20210621 | #1301 最大得分的路径数目 | 困难 | 动态规划 |
- 动态规划
| |
| 20210621 | #96 不同的二叉搜索树 | 中等 | 动态规划 |
- 动态规划
| |
| 20210621 | #401 二进制手表 | 简单 | 位运算
回溯 |
- 枚举
- 回溯💡
| |
| 20210622 | 背包问题 | | | | |
| 20210622 | #416 分割等和子集 | 中等 | 01背包 | 恰好问题
用boolean数组也行dp[0] = true
dp[j] = dp[j] | dp[j-nums[i]
| |
| 20210622 | #1049 最后一块石头的重量 II | 中等 | 01背包 | 经典背包问题:给定容量最多能装多少dp[j] = max(dp[j], dp[j-nums[i]]+w[i])
| |
| 20210622 | #剑指 Offer 38 字符串的排列 | 中等 | 回溯 | 💡每日一题 | |
| 20210622 | #494 目标和 | 中等 | 01背包 | 方案数dp[0] = 1
dp[j] += dp[j-nums[i]]
| |
| 20210622 | #474 一和零 | 中等 | 01背包 | 最多物品数的方案dp[0] = 0
dp[j] = max(dp[j], dp[j-nums[i]]+1)
| |
| 20210622 | #518 零钱兑换 II | 中等 | 完全背包 | 组合方案数
外层遍历物品,内层遍历背包dp[0] = 1
dp[j] += dp[j-nums[i]]
| |
| 20210622 | #377 组合总和 Ⅳ | 中等 | 完全背包 | 组合方案数 | |
| 20210622 | #70 爬楼梯 | 简单 | 完全背包
扩展到每次[1,2,…m]个台阶的问题 | 排列方案数
外层遍历背包,内层遍历物品dp[0] = 1
dp[j] += dp[j-nums[i]]
| |
| 20210622 | #322 零钱兑换 | 中等 | 完全背包 | 最少物品数的方案dp[0] = 0
其它元素初始化为Integer.MAX_VALUEdp[j] = max(dp[j], dp[j-nums[i]]+1)
| |
| 20210622 | #279 完全平方数 | 中等 | 完全背包 | 最少物品数的方案 | |
| 20210623 | #139 单词拆分 | 中等 | 完全背包 | 恰好问题
字符串的特殊性:先遍历背包再遍历物品 | |
| 20210623 | #剑指 Offer 15 二进制中1的个数 | 简单 | 位运算 | | |
| 20210623 | #1449 数位成本和为目标值的最大数字 | 困难 | 完全背包 | 最多物品数的方案
求该方案的具体物品 | |
| 20210624 | #149 直线上最多的点数 | 困难 | 数学 | 💡每日一题 | |
| 20210625 | #752 打开转盘锁 | 中等 | bfs | 💡每日一题 | |
| 20210625 | #773 滑动谜题 | 困难 | | 💡每日一题 | |
| 20210627 | #909 蛇梯棋 | 中等 | | 💡每日一题 | |
| 20210627 | #45 跳跃游戏 II | 中等 | 数组 |
- dp
- 贪心
| |
| 20210627 | #455 分发饼干 | 简单 | 贪心 |
- 贪心
| |
| 20210627 | #198 打家劫舍
#213 打家劫舍 II | 中等 | dp | | |
| | | | | |
| 20210627 | #剑指 Offer 04 二维数组中的查找 | 中等 | 二分 |
- 二分+暴力
- 二分+线性扫描
- 纯线性扫描
本题是74的进阶! | |
| 20210627 | #剑指 Offer 05 替换空格 | 简单 | 字符串 | 线性扫描(StringBuilder) | |
| 20210627 | #剑指 Offer 06 从尾到头打印链表 | 简单 | 链表 |
- 栈
| |
| 20210627 | #815 公交路线 | 困难 | | 💡每日一题 | |
| 20210628 | #剑指 Offer 22 链表中倒数第k个节点 | 简单 | 链表 |
- 快慢指针
| 注意起始点 |
| 20210627 | #19 删除链表的倒数第 N 个结点 | 中等 | 链表 |
- 快慢指针
| |
| 20210628 | #剑指 Offer 12 矩阵中的路径 | 中等 | 树 |
- dfs
| |
| 20210628 | #剑指 Offer 07 重建二叉树 | 中等 | 树 |
- 递归
| |
| 20210628 | #剑指 Offer 09 用两个栈实现队列 | 简单 | 栈,队列 |
- 模拟
| |
| 20210628 | #剑指 Offer 13 机器人的运动范围 | 中等 | 数组 |
- dp
- bfs
| |
| 20210628 | #142 环形链表 II | 中等 | 链表 |
- 快慢指针
| |
| 20210628 | #141 环形链表 | 简单 | 链表 |
- 快慢指针
| |
| 20210628 | #剑指 Offer 14- I 剪绳子 | 中等 | 动态规划 |
- dp
- 数学
| |
| 20210628 | #剑指 Offer 16 数值的整数次方 | 中等 | 数学 | 同50
注意数的范围 | |
| 20210628 | #剑指 Offer 21 调整数组顺序使奇数位于偶数前面 | 简单 | 数组 |
- 双指针
| |
| 20210628 | #27 移除元素 | 简单 | 数组 |
- 双指针
| |
| 20210629 | #168 Excel表列名称 | 简单 | 数学 | 每日一题
- 进制转换问题(特殊点:0的问题)
| |
| 20210629 | #53 最大子序和
#剑指 Offer 42 连续子数组的最大和 | 简单 | 数组 |
- dp
- 线段树💡
| |
| | | | | | |
| | | | | | |
| | | | | | |