Leetcode
文章平均质量分 78
写些Leetcode经典和有趣题目的题解
Boring_Firecar
这个作者很懒,什么都没留下…
展开
-
Leetcode 373.查找和最小的K对数字
题目 Leetcode 373.查找和最小的K对数字题目链接: Leetcode 373.查找和最小的K对数字给定两个以 升序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。样例示例1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[原创 2022-01-15 10:36:45 · 512 阅读 · 0 评论 -
leetcode每日一题_用Rand7() 实现 Rand10()
470.用Rand7() 实现 Rand10()已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法。题目链接: leetcode 470.用Rand7()来实现Rand10()样例示例1:输入: 1输出: [7] 示例2:输入: 2输出: [8,4]示例3:输入: 3输出: [8,1,10]提示:rand7 已定义。传入参数:原创 2021-09-05 16:27:51 · 212 阅读 · 0 评论 -
Leetcode 1104.二叉树寻路
Leetcode 1104.二叉树寻路题目链接: leetcode 1104.二叉树寻路在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行标记;而偶数行(即,第二行、第四行、第六行……)中,按从右到左的顺序进行标记。给你树上某一个节点的标号 label,请你返回从根节点到该标号为 label 节点的路径,该路径是由途经的节点标号所组成的。样例示例1:输入:label =原创 2021-07-30 18:09:47 · 143 阅读 · 0 评论 -
Leetcode每日一题_滑动窗口题目
Leetcode每日一题_1838.最高频元素的频数题目链接: Leetcode 1838. 最高频元素的频数题目元素的 频数 是该元素在一个数组中出现的次数。给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。样例示例1:输入:nums = [1,2,4], k = 5输出:3解释:对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,原创 2021-07-20 23:35:54 · 369 阅读 · 2 评论 -
Leetcode 1449.数位成本和目标值的最大数字
Leetcode 数位成本和目标值的最大数字题目链接: leetcode 1449.数位成本和为目标值的最大数字题目给你一个整数数组 cost 和一个整数 target 。请你返回满足如下规则可以得到的最大整数:给当前结果添加一个数位(i + 1)的成本为 cost[i] (cost 数组下标从 0 开始)。总成本必须恰好等于 target 。添加的数位中没有数字 0 。由于答案可能会很大,请你以字符串形式返回。如果按照上述要求无法得到任何整数,请你返回 “0” 。样例示原创 2021-06-16 22:52:27 · 196 阅读 · 1 评论 -
Leetcode 跳跃游戏相关问题
跳跃游戏相关问题leetcode 55. 跳跃游戏leetcode 45. 跳跃游戏II55. 跳跃游戏题目链接: leetcode 55.跳跃游戏给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。样例示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 示原创 2021-06-10 11:11:00 · 228 阅读 · 1 评论 -
Leetcode 48.旋转图像
Leetcode 48.旋转图像题目链接: Leetcode 48.旋转图像题目给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。样例示例1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix = [[5,1,9,11],[2,4,8,10]原创 2021-06-07 18:41:53 · 154 阅读 · 0 评论 -
Leetcode 组合总和 与 排列组合相关问题
Leetcode 组合总和 与 全排列相关问题组合总和题目链接: Leetcode 39.组合总和题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。样例示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[原创 2021-06-06 23:46:27 · 298 阅读 · 0 评论 -
Leetcode 1074. 元素和为目标值的子矩阵数量
1074 Leetcode 元素和为目标值的子矩阵数量题目链接: 1074. 元素和为目标值的子矩阵数量题目描述给出矩阵 matrixmatrixmatrix 和目标值 targettargettarget,返回元素总和等于目标值的非空子矩阵的数量。子矩阵 x1, y1, x2, y2 是满足 x1 ≤ x ≤ x2 且 y1 ≤ y ≤ y2 的所有单元 matrix[x][y]matrix[x][y]matrix[x][y] 的集合。如果 (x1, y1, x2, y2) 和 (x1’, y1原创 2021-05-31 00:48:12 · 247 阅读 · 0 评论 -
LeetCode算法题分享---DFS典型题目
题目链接: LC 90. 子集 II题目:给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。要求 : 解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]提示. 1 <= nums.length <= 10. -10 <= nums[i] <= 10基本思路分析其实就是一个排列组合题目原创 2021-04-01 15:34:38 · 381 阅读 · 0 评论 -
力扣每日一题__92. 反转链表 II
力扣每日一题__92. 反转链表 II题目链接: LC 92.反转链表这道题是对链表的局部进行翻转的, 我们先来看一个普通版本的链表翻转。题目链接 : Acwing 35. 反转链表 acwing上这道题目的意思就是让你反转整个链表, 这里我们分为迭代和递归两种不同的版本首先分析这个过程 , 1号节点的next指向的是2号节点, 如果我们要进行翻转链表的操作,我们应该将1号节点的next指向nullptr, 然后2号节点的next指向1号节点, 3号节点的next指向2号节点 … , 即将每原创 2021-03-18 23:51:13 · 199 阅读 · 0 评论 -
Leetcode 560.和为k的子数组
560. Leetcode 和为k的子数组题目链接: 560. 和为K的子数组题目描述给定一个整数数组和一个整数 **k,**你需要找到该数组中和为 k 的连续的子数组的个数。样例示例1: 输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明:数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。ws算法1 (前缀和 + 暴力枚举)思原创 2021-05-30 21:50:23 · 101 阅读 · 0 评论 -
DP-Leetcode 奇怪的打印机
题目链接: Leetcode 664. 奇怪的打印机题目: 奇怪的打印机题目描述有台奇怪的打印机有以下两个特殊要求:打印机每次只能打印由 同一个字符 组成的序列。每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。样例示例1 : 输入:s = "aaabbb"输出:2解释:首先打印 "aaa" 然后打印 "bbb"。示例2 : 输入:s = "aba"输出:2解释:首先打印 "aaa"原创 2021-05-24 23:41:34 · 119 阅读 · 0 评论 -
DP题目 - LeetCode 1269. 停在原地的方案数
题目链接 : 1269. 停在原地的方案数题目描述有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 次操作以后,指针仍然指向索引 0 处的方案数。由于答案可能会很大,请返回方案数 模 109+710^9 + 7109+7 后的结果。样例示例1 输入:steps = 3, arrLen = 2输出原创 2021-05-13 23:07:42 · 100 阅读 · 1 评论 -
动态规划——力扣10. 正则表达式匹配
题目链接 : Lc 10. 正则表达式匹配题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = "aa" p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。示例 2:输入:s = "aa" p = "a*"输出:true解释:因为 '*' 代表可以匹配零个或多原创 2021-05-07 23:12:30 · 143 阅读 · 0 评论 -
LeetCode排序类Sort相关题目
Sort相关题目LC 148. 排序链表题目链接: 148. 排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。链表排序相关算法(1) 插入排序:时间复杂度 O(n2n^2n2), 空间复杂度 O(1);(2) 归并排序(自顶向下) 时间复杂度 O(nlognnlognnlogn), 空间复杂度 O(lognlognlogn);(3) 归并排序(自底向上) 时间复杂度 O(nlognnlognnlogn), 空间复杂度 O(111);(4) 利用辅助原创 2021-04-23 11:20:52 · 169 阅读 · 0 评论 -
LC每日抑题_87. 扰乱字符串
题目链接:87. 扰乱字符串题目描述使用下面描述的算法可以扰乱字符串 s 得到字符串 t :如果字符串的长度为 1 ,算法停止如果字符串的长度 > 1 ,执行下述步骤:(1) 在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + y 。(2) 随机 决定是要「交换两个子字符串」还是要「保持这两个子字符串的顺序不变」。即,在执行这一步骤之后,s 可能是 s = x + y 或者 s = y + x 。原创 2021-04-22 00:00:15 · 115 阅读 · 0 评论 -
力扣每日一题_781. 森林中的兔子
题目链接 : Lc 781. 森林中的兔子思路分析题目要求的是森林中最少的兔子数量, 那么最少兔子数量的情况就是根据兔子的回答将它们尽量分到同一组中去, 即例子中 1, 1, 2, 第一只兔子表明和自己相同颜色的兔子还有一只,第二只兔子回答也是表明和自己颜色相同的兔子还有一只,此时我们就可以将第一只兔子和第二只兔子归为同一类, 第三只兔子表明和自己颜色相同的兔子还有2只,此时就排除了第一只,第二只,第三只是同一类的可能性,故第三只兔子单独成一类,且这一类中兔子的个数为 2 + 1 = 3; 故这种原创 2021-04-05 23:14:41 · 213 阅读 · 0 评论