![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode HOT 100
文章平均质量分 59
LeetCode HOT 100
丨惊蛰丨
这个作者很懒,什么都没留下…
展开
-
78. 子集——DFS遍历/位运算/回溯/枚举
目录1.题目2.自我思路及实现回溯3.总结思路及实现简洁的回溯DFS遍历位运算枚举4.相关知识1.题目78. 子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]] 提示:1 &原创 2021-01-31 23:21:22 · 395 阅读 · 1 评论 -
75. 颜色分类——双指针
目录1.题目2.自我思路及实现统计每种颜色的数量重写数组3.总结思路及实现双指针4.相关知识1.题目75. 颜色分类给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 示例 1:输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2]示例 2:输入:nums = [2,0,1]输出:[0,1,2]示例 3:原创 2021-01-31 21:03:20 · 138 阅读 · 0 评论 -
62. 不同路径——动态规划/排列组合
1.题目62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径? 示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向原创 2021-01-27 22:09:39 · 495 阅读 · 0 评论 -
56. 合并区间——排序
目录1.题目2.自我思路及实现3.总结思路及实现排序4.相关知识1.题目56. 合并区间给出一个区间的集合,请合并所有重叠的区间。 示例 1:输入: intervals = [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: intervals = [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [原创 2021-01-26 15:40:40 · 192 阅读 · 0 评论 -
55. 跳跃游戏——从前向后贪心/从后向前阈值
目录1.题目2.自我思路及实现3.总结思路及实现从后向前阈值从前向后贪心4.相关知识1.题目55. 跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样原创 2021-01-25 14:47:56 · 171 阅读 · 0 评论 -
48. 旋转图像——原地旋转/两次翻转
目录1.题目2.自我思路及实现原地旋转3.总结思路及实现两次翻转4.相关知识1.题目48. 旋转图像给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]原创 2021-01-19 17:35:16 · 347 阅读 · 0 评论 -
17. 电话号码的字母组合——回溯法
目录1.题目2.自我思路及实现3.总结思路及实现4.相关知识1.题目17. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。2.自我思路及实现回溯法使用哈希表原创 2021-01-18 19:25:12 · 183 阅读 · 0 评论 -
46. 全排列——回溯算法
目录1.题目2.自我思路及实现3.总结思路及实现4.相关知识1.题目46. 全排列给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]2.自我思路及实现3.总结思路及实现回溯法 :采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,原创 2021-01-13 15:44:55 · 1012 阅读 · 0 评论 -
39. 组合总和——回溯法(begin变量)
1.题目39. 组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例 2:输入:candidates =原创 2021-01-17 20:37:35 · 182 阅读 · 0 评论 -
(未实现)33. 搜索旋转排序数组——二分法
目录1.题目2.自我思路及实现3.总结思路及实现二分法4.相关知识1.题目33. 搜索旋转排序数组升序排列的整数数组 nums 在预先未知的某个点上进行了旋转(例如, [0,1,2,4,5,6,7] 经旋转后可能变为 [4,5,6,7,0,1,2] )。请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 示例 1:输入:nums = [4,5,6,7,0,1,2], target = 0输出:4示例 2:输入:nums = [4,5,原创 2021-01-10 21:57:11 · 85 阅读 · 0 评论 -
(已实现)31. 下一个排列——从后向前两遍扫描
目录1.题目2.自我思路及实现3.总结思路及实现4.相关知识1.题目31. 下一个排列实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。 示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:原创 2021-01-08 10:01:51 · 82 阅读 · 0 评论 -
(未实现)15. 三数之和——排序+双指针
目录1.题目2.自我思路及实现3.总结思路及实现排序+双指针4.相关知识1.题目15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。 示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]2.自我思路及实现原创 2021-01-05 17:11:24 · 64 阅读 · 0 评论 -
(未实现)4. 寻找两个正序数组的中位数——二分法划分数组
目录1.题目2.自我思路及实现3.总结思路与实现1.二分法--循环2. 划分数组——二分法4.相关知识1.题目4. 寻找两个正序数组的中位数给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗? 示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:原创 2021-01-04 16:43:13 · 126 阅读 · 0 评论 -
(已实现)3. 无重复字符的最长子串——动态规划+哈希表/滑动窗口+哈希表
1.题目2.自我思路及实现3.总结思路及实现1.动态规划2.动态规划+哈希表3.滑动窗口(双指针)4.滑动窗口(双指针)+ 哈希表5.将哈希表改为数组4.相关知识1.题目3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b".原创 2020-12-28 15:48:15 · 184 阅读 · 0 评论 -
(已实现)2. 两数相加——双指针
目录1.题目2.自我思路及实现3.总结思路与实现4.相关知识及注意事项1.题目2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原原创 2020-12-24 11:36:21 · 255 阅读 · 1 评论