关于力扣(leetcode)
偶然在力扣(LeetCode)参加了一个活动,每天一题,坚持60天
今天是2020-03-17 **第一天**
审题
- 题目起码要理解透
- 可用算法及思路(思路一闪而过,可以记录下来)
- 画出判断条件
- 编码
方法
- 在编辑代码的过程中,思路会越渐清晰(通常,会在有一点思路的时候会编辑伪代码)
- 暴力解法 可以先做一遍,可以缕清很多思路
- 二叉树配合往往递归 对于递归需要判断
- 用递归或者迭代代替 for while 循环,可以大大降低时间复杂度
- 对数组中元素没有顺序要求题目,可对数组排序
- 当暴力破解超时,可以思考是不是可以降低纬度
- 判断循环就用快慢指针,在链表中常出现
题集源码
GitHub:LeetCode
LeetCode 题目合集
序号 | 题目 | 涉及算法及思路 | 难度 |
---|---|---|---|
5409 | 5409. 检查一个字符串是否包含所有长度为 K 的二进制子串 | 滑动窗口 |
中等 |
5408 | 5408. 通过翻转子数组使两个数组相等 | zip |
简单 |
5414 | 5414. 收藏清单 | 交集 |
中等 |
5413 | 5413. 重新排列句子中的单词 | lambda |
中等 |
5412 | 5412. 在既定时间做作业的学生人数 | 简单 |
|
5397 | 5398. 统计二叉树中好节点的数目 | 深度优先搜索 |
中等 |
5397 | 5397. 最简分数 | 最大公约数 欧几里得法 |
中等 |
5393 | 5393. 可获得的最大点数 | 前缀和 滑动窗口 深度优先搜索(DFS) |
中等 |
5392 | 5392. 分割字符串的最大得分 | 分割字符串 线性扫描 |
中等 |
5385 | 5385. 改变一个整数能得到的最大差值 | 循环 |
中等 |
1438 | 1438. 绝对差不超过限制的最长连续子数组 | 滑动窗口 |
中等 |
1389 | 1389. 按既定顺序创建目标数组 | 数组 |
简单 |
1385 | 1385. 两个数组间的距离值 | 暴力 二分查找 |
简单 |
1248 | 1248. 统计「优美子数组」 | 滑动窗口 按位与运算 |
中等 |
1160 | 1160. 拼写单词 | 哈希表 |
简单 |
1095 | 1095. 山脉数组中查找目标值 | 二分查找 |
困难 |
0876 | 876. 链表的中间结点 | 数组 快慢指针 单指针法 |
简单 |
0836 | 836. 矩形重叠 | 检查位置 检查区域 |
简单 |
0724 | 724. 寻找数组的中心索引 | 前缀和 |
简单 |
0704 | 704. 二分查找 | 二分查找 |
中等 |
0572 | 572. 另一个树的子树 | 递归 |
简单 |
0560 | 560. 和为K的子数组 | 前缀和 |
中等 |
0508 | 508. 出现次数最多的子树元素和 | 哈希表 递归 |
中等 |
0445 | 445. 两数相加 II | 栈 |
中等 |
0409 | 409. 最长回文串 | 哈希表 数组 贪心 |
简单 |
0365 | 365. 水壶问题 | 欧几里得法(辗转相除法) |
中等 |
0238 | 238. 除自身以外数组的乘积 | 中等 |
|
0229 | 229. 求众数 II | 摩尔投票法 |
中等 |
0213 | 213. 打家劫舍 II | 动态规划 |
中等 |
0206 | 206. 反转链表 | 迭代 |
简单 |
0202 | 202. 快乐数 | 算数 用HashSet检测循环 快慢指针法 |
简单 |
0199 | 199. 二叉树的右视图 | DFS BFS |
中等 |
0198 | 198. 打家劫舍 | 动态规划 |
简单 |
0169 | 169. 多数元素 | 排序 哈希表 摩尔投票法思路 |
简单 |
0152 | 152. 乘积最大子数组 | 动态规划 贪心 |
中等 |
0136 | 136. 只出现一次的数字 | 异或运算 数组 |
简单 |
0121 | 121. 买卖股票的最佳时机 | 动态规划 暴力 |
简单 |
0102 | 102. 二叉树的层序遍历 | BFS DFS |
中等 |
0100 | 100. 相同的树 | 递归 |
简单 |
0098 | 98. 验证二叉搜索树 | 中序遍历 |
中等 |
0081 | 81. 搜索旋转排序数组 II | 二分查找 旋转数组 |
中等 |
0069 | 69. x 的平方根 | 二分查找 |
中等 |
0056 | 56. 合并区间 | 贪心 |
中等 |
0055 | 55. 跳跃游戏 | 贪心 暴力回溯 递归 记忆化 |
中等 |
0053 | 53. 最大子序和 | 动态规划 贪心 |
简单 |
0050 | 50. Pow(x, n) | 折半计算 递归 |
中等 |
0046 | 46. 全排列 | 深度优先搜索(DFS) |
中等 |
0035 | 35. 搜索插入位置 | 二分查找 |
简单 |
0034 | 34. 在排序数组中查找元素的第一个和最后一个位置 | 二分查找 |
中等 |
0033 | 33. 搜索旋转排序数组 | 二分查找 旋转数组 |
中等 |
0028 | 28. 实现 strStr() | 滑动窗口 |
简单 |
0027 | 27. 移除元素 | 拷贝覆盖 倒序遍历 交换移除 |
简单 |
0026 | 26. 删除排序数组中的重复项 | 遍历 |
简单 |
0023 | 23. 合并K个排序链表 | 优先队列 |
困难 |
0021 | 21. 合并两个有序链表 | 递归 |
简单 |
0020 | 20. 有效括号 | 哈希表 暴力 |
简单 |
0016 | 17. 电话号码的字母组合 | 回溯算法 |
中等 |
0016 | 16. 最接近的三数之和 | 数组遍历 双指针 |
中等 |
0015 | 15. 三数之和 | 数组遍历 双指针 |
中等 |
0014 | 14. 最长公共前缀 | zip |
简单 |
0013 | 13. 罗马数字转整数 | 哈希表 |
简单 |
0012 | 12. 整数转罗马数字 | 🌟🌟🌟🌟🌟 |
中等 |
0011 | 11. 盛最多水的容器 | 暴力 双向指针 |
中等 |
0009 | 9. 回文数 | 算数 |
简单 |
0008 | 8. 字符串转换整数 (atoi) | 中等 |
|
0007 | 7. 整数反转 | 算数 |
简单 |
0006 | 6. Z 字形变换 | 链表 |
中等 |
0005 | 5. 最长回文串 | 中心扩展算法 |
中等 |
0003 | 3. 无重复字符的最长子串 | 滑动窗口 |
中等 |
0002 | 2. 两数相加 | 链表 |
中等 |
0001 | 1. 两数之和 | 前缀和 哈希表 |
简单 |
面试题68 | 面试题68 - I. 二叉搜索树的最近公共祖先 | 迭代 二叉树 |
简单 |
面试题64 | 面试题64. 求1+2+…+n | 双指针法 |
中等 |
面试题56 | 面试题56 - I. 数组中数字出现的次数 | 二分查找 异或运算 |
简单 |
面试题40 | 面试题40. 最小的k个数 | 小根堆 大根堆 快排 暴力 二叉树 数据范围有限时直接计数排序就行了 |
简单 |
面试题29 | 面试题29. 顺时针打印矩阵 | 暴力 |
简单 |
面试题 17.16 | 面试题 17.16. 按摩师 | 动态规划 递归 |
简单 |
面试题 08.11 | 面试题 08.11. 硬币 | 动态规划(dp) 完全背包问题 |
中等 |