Leetcode
文章平均质量分 63
道纪书生
博士在读,国家奖学金获得者,中国机器人大赛全国亚军,研究方向:CV/SVBRDF Estimation/Object Counting/Swarm Intelligence/Evolutionary Computation,学术or技术交流欢迎私信。
展开
-
Leetcode-338. 比特位计数
Leetcode-338. 比特位计数原创 2022-09-17 00:47:34 · 664 阅读 · 0 评论 -
Leetcode-462. 最少移动次数使数组元素相等 II
Leetcode-462. 最少移动次数使数组元素相等 II原创 2022-09-10 10:59:24 · 476 阅读 · 0 评论 -
Leetcode-1653. 使字符串平衡的最少删除次数
Leetcode-1653. 使字符串平衡的最少删除次数原创 2022-09-10 10:27:43 · 626 阅读 · 0 评论 -
Leetcode-669. 修剪二叉搜索树
Leetcode-669. 修剪二叉搜索树原创 2022-09-10 00:49:33 · 532 阅读 · 0 评论 -
Leetcode-1451. 重新排列句子中的单词
Leetcode-1451. 重新排列句子中的单词原创 2022-09-09 20:52:18 · 433 阅读 · 0 评论 -
Leetcode-2311. 小于等于 K 的最长二进制子序列
Leetcode-2311. 小于等于 K 的最长二进制子序列原创 2022-09-08 12:07:31 · 625 阅读 · 0 评论 -
Leetcode-73. 矩阵置零
四种方法(空间复杂度)求解Leetcode-73. 矩阵置零原创 2022-09-07 21:22:40 · 862 阅读 · 0 评论 -
Leetcode-2099. 找到和最大的长度为 K 的子序列
Leetcode-2099. 找到和最大的长度为 K 的子序列原创 2022-09-07 11:39:13 · 560 阅读 · 0 评论 -
Leetcode-1592. 重新排列单词间的空格
Leetcode-1592. 重新排列单词间的空格原创 2022-09-07 10:51:48 · 415 阅读 · 0 评论 -
Leetcode-828. 统计子串中的唯一字符
Leetcode-828. 统计子串中的唯一字符原创 2022-10-04 21:02:16 · 827 阅读 · 0 评论 -
Leetcode-649. Dota2 参议院
Leetcode-649. Dota2 参议院原创 2022-09-05 17:32:39 · 484 阅读 · 0 评论 -
Leetcode-2133. 检查是否每一行每一列都包含全部整数
Leetcode-2133. 检查是否每一行每一列都包含全部整数原创 2022-09-04 16:26:06 · 525 阅读 · 0 评论 -
Leetcode-面试题 05.02. 二进制数转字符串
二进制小数转换原创 2022-09-04 11:17:56 · 509 阅读 · 0 评论 -
Leetcode-1582. 二进制矩阵中的特殊位置
特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。解释:(1,2) 是一个特殊位置,因为 mat[1][2] == 1 且所处的行和列上所有其他元素都是 0。解释:(0,0), (1,1) 和 (2,2) 都是特殊位置。输入:mat = [[0,0,0,0,0],输入:mat = [[0,0,0,1],输入:mat = [[1,0,0],输入:mat = [[1,0,0],原创 2022-09-04 10:48:21 · 447 阅读 · 0 评论 -
Leetcode-1109:航班预订统计(20210831打卡题)
题目链接https://leetcode-cn.com/problems/corporate-flight-bookings/华为面试题题目这里有n个航班,它们分别从 1 到 n 进行编号。有一份航班预订表bookings ,表中第i条预订记录bookings[i] = [firsti, lasti, seatsi]意味着在从 firsti到 lasti (包含 firsti 和 lasti )的 每个航班 上预订了 seatsi个座位。请你返回一个长度为 n 的......原创 2021-08-31 10:33:37 · 342 阅读 · 0 评论 -
Leetcode-93. 复原 IP 地址
链接93. 复原 IP 地址题目有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入'.'.原创 2022-02-24 21:15:02 · 133 阅读 · 0 评论 -
Leetcode-386. 字典序排数
链接386. 字典序排数题目给你一个整数n,按字典序返回范围[1, n]内所有整数。你必须设计一个时间复杂度为O(n)且使用O(1)额外空间的算法。示例示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2]为了更直观地看到结果,这里我再添加一个自己输入的测试用例3输入1000输出[1,10,100,1000,101,102,103,104,10...原创 2022-04-18 10:07:23 · 634 阅读 · 1 评论 -
Leetcode-96. 不同的二叉搜索树
链接力扣题目给你一个整数n,求恰由n个节点组成且节点值从1到n互不相同的二叉搜索树有多少种?返回满足题意的二叉搜索树的种数。示例示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1说明1 <= n <= 19思路本题可以采用动态规划的思路来做,我们可以观察发现,由于节点值为1-n的数,因此,对于每棵树,我们可以不需要具体考虑节点值为多少,只要能求出有多少棵就行,因此,我们假设dp[i] 为1到i组成的二...原创 2022-04-13 10:13:47 · 1169 阅读 · 2 评论 -
Leetcode-343. 整数拆分
链接343. 整数拆分题目给定一个正整数n,将其拆分为k个正整数的和(k >= 2),并使这些整数的乘积最大化。返回你可以获得的最大乘积。示例示例 1:输入: n = 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例2:输入: n = 10输出: 36解释: 10 = 3 + 3 + 4, 3 ×3 ×4 = 36。说明2 <= n <= 58思路一(DP)我们用dp[i]来表示分拆...原创 2022-04-12 11:06:46 · 1522 阅读 · 2 评论 -
Leetcode-63. 不同路径 II
题目63. 不同路径 II链接一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。示例示例 1:输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正..原创 2022-04-12 10:09:39 · 290 阅读 · 0 评论 -
Leetcode-357. 统计各位数字都不同的数字个数
链接357. 统计各位数字都不同的数字个数题目给你一个整数n,统计并返回各位数字都不同的数字x的个数,其中0 <= x < 。示例示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。示例 2:输入:n = 0输出:1说明0 <= n <= 8思路一 暴力直接遍历0到的所有数字,逐一判断,然而这种方...原创 2022-04-11 10:14:27 · 520 阅读 · 1 评论 -
Leetcode-780. 到达终点
链接780. 到达终点题目给定四个整数sx,sy,tx和ty,如果通过一系列的转换可以从起点(sx, sy)到达终点(tx, ty),则返回 true,否则返回false。从点(x, y)可以转换到(x, x+y)或者(x+y, y)。示例示例 1:输入: sx = 1, sy = 1, tx = 3, ty = 5输出: true解释:可以通过以下一系列转换从起点转换到终点:(1, 1) -> (1, 2)(1, 2) -&g...原创 2022-04-09 19:51:49 · 546 阅读 · 0 评论 -
Leetcode-47. 全排列 II
链接47. 全排列 II题目给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列示例示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]说明1 <= nums.length <= 8 -10 <= nums[i]...原创 2022-04-07 16:46:30 · 294 阅读 · 0 评论 -
Leetcode-46. 全排列
链接46. 全排列题目给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]说明1 <= nums.length <= 6...原创 2022-04-07 16:04:35 · 835 阅读 · 0 评论 -
Leetcode-491. 递增子序列
链接491. 递增子序列题目给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例示例 1:输入:nums = [4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]示例 2:输入:nums = [4,4,3,2,1]输出原创 2022-04-07 15:20:51 · 788 阅读 · 0 评论 -
Leetcode-796. 旋转字符串
链接796. 旋转字符串题目给定两个字符串, s和goal。如果在若干次旋转操作之后,s能变成goal,那么返回true。s的 旋转操作 就是将s 最左边的字符移动到最右边。例如, 若s = 'abcde',在旋转一次之后结果就是'bcdea'。示例示例 1:输入: s = "abcde", goal = "cdeab"输出: true示例 2:输入: s = "abcde", goal = "abced"输出: false说明...原创 2022-04-07 14:59:31 · 586 阅读 · 0 评论 -
Leetcode-90. 子集 II
链接90. 子集 II题目给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]说明1 <= nums.length <= 10 -10 <= nums[i原创 2022-04-05 10:24:49 · 218 阅读 · 0 评论 -
Leetcode-93. 复原 IP 地址
链接93. 复原 IP 地址题目有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入'.'.原创 2022-04-04 11:44:19 · 3168 阅读 · 0 评论 -
Leetcode-131. 分割回文串
链接131. 分割回文串题目给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。示例示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]]说明1 <= s.length <= 16 s仅由小写英文字母组成思路这题切割字符串,其实还是组合问题(如:Lee...原创 2022-04-03 20:52:58 · 812 阅读 · 0 评论 -
Leetcode-40. 组合总和 II
链接40. 组合总和 II题目给定一个候选人编号的集合candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。注意:解集不能包含重复的组合。示例示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例2:...原创 2022-04-03 18:55:38 · 776 阅读 · 0 评论 -
Leetcode-39. 组合总和
链接39. 组合总和题目给你一个 无重复元素 的整数数组candidates 和一个目标整数target,找出candidates中可以使数字和为目标数target 的 所有不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为target 的不同组合数少于 150 个。示例示例1:输入:candida...原创 2022-04-03 18:02:50 · 723 阅读 · 0 评论 -
Leetcode-744. 寻找比目标字母大的最小字母
链接744. 寻找比目标字母大的最小字母题目给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = 'z' 并且字符列表为letters = ['a', 'b'],则答案返回'a'示例示例 1:输入: letters = ["c", "f", "j"],target = "a"输出: "c"示例...原创 2022-04-03 17:00:05 · 338 阅读 · 0 评论 -
Leetcode-17. 电话号码的字母组合
链接17. 电话号码的字母组合题目给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","...原创 2022-04-02 12:02:51 · 337 阅读 · 0 评论 -
Leetcode-216. 组合总和 III
链接216. 组合总和 III题目找出所有相加之和为n 的k个数的组合,且满足下列条件:只使用数字1到9 每个数字最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例示例 1:输入: k = 3, n = 7输出: [[1,2,4]]解释:1 + 2 + 4 = 7没有其他符合的组合了。示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解释...原创 2022-04-02 11:39:15 · 1180 阅读 · 0 评论 -
Leetcode-714. 买卖股票的最佳时机含手续费
链接z714. 买卖股票的最佳时机含手续费题目给定一个整数数组prices,其中 prices[i]表示第i天的股票价格 ;整数fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例示例 1:输入:prices = [1, 3, 2, 8, 4, 9],...原创 2022-04-02 01:04:57 · 311 阅读 · 0 评论 -
Leetcode-968. 监控二叉树
链接968. 监控二叉树题目给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。示例示例 1:输入:[0,0,null,0,0]输出:1解释:如图所示,一台摄像头足以监控所有节点。示例 2:输入:[0,0,null,0,null,0,null,null,0]输出:2解释:需要至少两个摄像头来监视树的所有节点。 上图显示了摄像头放置的有效位置之一。说明.原创 2022-04-01 12:09:36 · 183 阅读 · 0 评论 -
Leetcode-954. 二倍数对数组
链接954. 二倍数对数组题目给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <=i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]”时,返回 true;否则,返回 false。示例示例 1:输入:arr = [3,1,3,6]输出:false示例 2:输入:arr = [2,1,2,6]输出:false示例 3:输入:arr = [4,-2,2,-4]..原创 2022-04-01 10:09:19 · 993 阅读 · 0 评论 -
Leetcode-738. 单调递增的数字
链接738. 单调递增的数字题目当且仅当每个相邻位数上的数字x和y满足x <= y时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。示例示例 1:输入: n = 10输出: 9示例 2:输入: n = 1234输出: 1234示例 3:输入: n = 332输出: 299说明0 <= n <= 10e9思路一(暴力)暴力法也就是判断从n到0的所有数字...原创 2022-04-01 09:42:04 · 559 阅读 · 0 评论 -
Leetcode-56. 合并区间
链接56. 合并区间题目以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:...原创 2022-03-31 22:52:44 · 224 阅读 · 0 评论 -
Leetcode-435. 无重叠区间
链接435. 无重叠区间题目给定一个区间的集合intervals,其中 intervals[i] = [starti, endi]。返回 需要移除区间的最小数量,使剩余区间互不重叠。示例示例 1:输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: intervals = [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [...原创 2022-03-31 22:17:48 · 309 阅读 · 0 评论