力扣刷题
文章平均质量分 53
空之箱大战春日影
また会いましょう 約束だから —灰の魔女
展开
-
力扣刷题 DAY_89 贪心
输入: intervals = [[1,3],[2,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]。解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。输入: intervals = [[1,4],[4,5]]输出: [[1,6],[8,10],[15,18]]给出一个区间的集合,请合并所有重叠的区间。输出: [[1,5]]原创 2022-09-27 17:41:56 · 169 阅读 · 1 评论 -
力扣刷题 DAY_88 贪心
字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。原创 2022-09-14 16:57:03 · 149 阅读 · 0 评论 -
力扣刷题 DAY_87 贪心
注意: 可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。原创 2022-09-13 18:22:36 · 178 阅读 · 0 评论 -
力扣刷题 DAY_86 贪心
在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。给你一个数组 points ,其中 points [i] = [xstart,xend] ,返回引爆所有气球所必须射出的最小弓箭数。..原创 2022-08-26 14:06:01 · 117 阅读 · 0 评论 -
力扣刷题 DAY_85 贪心
因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]局部最优:优先按身高高的people的k来插入。输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]...原创 2022-08-25 20:36:41 · 103 阅读 · 0 评论 -
力扣刷题 DAY_84 贪心
链接:力扣 。题目:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。...原创 2022-06-13 11:13:58 · 81 阅读 · 0 评论 -
力扣刷题 DAY_83 贪心
链接:力扣 。题目:老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:那么这样下来,老师至少需要准备多少颗糖果呢?...原创 2022-06-12 12:20:15 · 93 阅读 · 0 评论 -
力扣刷题 DAY_82 贪心
链接:力扣 。题目:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。......原创 2022-06-10 14:04:42 · 82 阅读 · 0 评论 -
力扣刷题 DAY_81 贪心
链接:力扣 。题目:给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)以这种方式修改数组后,返回数组可能的最大和。说明: 1 ...原创 2022-06-09 18:31:05 · 96 阅读 · 0 评论 -
力扣刷题 DAY_80 贪心
Leetcode45链接:力扣。题目:给定一个非负整数数组nums,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。说明: 1 <= nums.length <= 104 0 <= nums[i] <= 1000示例1:输入:nums = [2,3,1,1,4]输出:2解释:跳到最后一个位置的最小跳跃数是 2...原创 2022-05-03 11:45:39 · 135 阅读 · 0 评论 -
力扣刷题 DAY_79 贪心
Leetcode55链接:力扣。题目:给定一个非负整数数组nums,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。说明: 1 <= nums.length <= 104 0 <= nums[i] <= 105示例1:输入:nums = [2,3,1,1,4]输出:true解释:我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个...原创 2022-05-01 11:33:22 · 137 阅读 · 0 评论 -
力扣刷题 DAY_78 贪心
Leetcode122链接:力扣。题目:给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。说明: 1 <= prices.length <= 3 * 104 0 <= prices[i] <= 104示例1:输入:prices = [7,1,5,3,6,4]...原创 2022-04-29 12:26:54 · 69 阅读 · 0 评论 -
力扣刷题 DAY_77 贪心
Leetcode376链接:力扣。题目:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。说明:1 <= nums.length <= 105-104 <= nums[i] <= 104示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:[4,-1,2,1] 是最大和连续子序列,和为6。示例2:输入:nums ...原创 2022-04-28 11:47:44 · 105 阅读 · 0 评论 -
力扣刷题 DAY_76 贪心
Leetcode376链接:力扣。题目:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长.原创 2022-04-27 12:21:17 · 95 阅读 · 0 评论 -
力扣刷题 DAY_75 贪心
Leetcode455链接:力扣。题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。说明: 1 <= g.length <= 3 * 10^...原创 2022-04-26 11:03:18 · 92 阅读 · 0 评论 -
力扣刷题 DAY_74 回溯
Leetcode37链接:力扣。题目:编写一个程序,通过填充空格来解决数独问题。一个数独的解法需遵循如下规则: 数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。 空白格用'.'表示。说明: 给定的数独序列只包含数字 1-9 和字符 '.' 。 你可以假设给定的数独只有唯一解。 给定数独永远是 9x9 形式的。例如数独问题:唯一解为:示例:...原创 2022-04-25 13:32:26 · 905 阅读 · 0 评论 -
力扣刷题 DAY_73 回溯
Leetcode51链接:力扣。题目:n皇后问题 研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:4 皇后...原创 2022-04-24 11:11:26 · 66 阅读 · 0 评论 -
力扣刷题 DAY_72 回溯
Leetcode332链接:力扣。题目:给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,请你按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前 所有的机场都用三个大写字母表示(机场代码)。 假定.原创 2022-04-23 20:39:00 · 88 阅读 · 0 评论 -
力扣刷题 DAY_71 回溯
Leetcode47链接:力扣。题目:给定一个可包含重复数字的序列 nums ,按任意顺序返回所有不重复的全排列。说明:1 <= nums.length <= 8 -10 <= nums[i] <= 10示例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,...原创 2022-04-21 13:09:33 · 78 阅读 · 0 评论 -
力扣刷题 DAY_70 回溯
Leetcode46链接:力扣。题目:给定一个 没有重复数字的序列,返回其所有可能的全排列。一般把N个不同的数字按照某个顺序摆放的结果称为这n个整数的一个排列,全排列是指这N个整数能形成的所有排列。示例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 = [1]输出:[[1]]参考代码:class Solution {public:.原创 2022-04-20 12:06:25 · 759 阅读 · 0 评论 -
力扣刷题 DAY_70 回溯
Leetcode491链接:力扣。题目:给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。说明:给定数组的长度不会超过15。 数组中的整数范围是[-100,100]。 给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。示例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:输入:nu..原创 2022-04-19 13:56:18 · 57 阅读 · 0 评论 -
力扣刷题 DAY_69 回溯
Leetcode60链接:力扣。题目:给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例2:输入:nums = [0]输出:[[],[0]]参考代码:class Solution {public: vector<vector<int>> re.原创 2022-04-18 11:27:58 · 75 阅读 · 0 评论 -
力扣刷题 DAY_68 回溯
Leetcode78链接:力扣。题目:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例1: 输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例2:输入:nums = [0]输出:[[],[0]]参考代码:class Solution {public: vector<vector<int&...原创 2022-04-17 11:03:31 · 66 阅读 · 0 评论 -
力扣刷题 DAY_67 回溯
Leetcode93链接:力扣。题目:给定一个只包含数字的字符串,复原它并返回所有可能的 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 地址。示例1: 输入:s = "2552.原创 2022-04-15 13:42:45 · 80 阅读 · 0 评论 -
力扣刷题 DAY_66 回溯
Leetcode131链接:力扣。题目:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s = "a"输出:[["a"]]思路:本题涉及两个问题:切割问题,有不同的切割方式 判断回文判断回文很容易。设置一个左指针left指向左边界、右指针right指向右边界,再用for循环依次判断s[left.原创 2022-04-14 11:04:25 · 418 阅读 · 0 评论 -
力扣刷题 DAY_65 回溯
Leetcode40链接:力扣。题目:给定一个数组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]...原创 2022-04-13 10:51:00 · 112 阅读 · 0 评论 -
力扣刷题 DAY_64 回溯
Leetcode39链接:力扣。题目:给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7输出:[[2,2,3],[7]]示例2:输入:candida...原创 2022-04-12 10:21:37 · 99 阅读 · 0 评论 -
力扣刷题 DAY_63 回溯
Leetcode17链接:力扣。题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例2:输入:digits = ""输出:[]思路:首先,为手机键盘建立一个哈希表,即将每个数字映射成对应的字符串。使用一个大小为10的s.原创 2022-04-11 11:14:54 · 163 阅读 · 0 评论 -
力扣刷题 DAY_62 回溯
Leetcode216链接:力扣。题目:找出所有相加之和为n 的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。 解集不能包含重复的组合。示例:输入:k = 3, n = 7输出:[[1,2,4]]解释:1 + 2 + 4 = 7思路:有了上一题Leetcode77的基础,77题所做的是在[1,n]集合中寻找k个组合的所有解。而本题,只需在[1,9]集合中找到k个的所有组合,然后判断其...原创 2022-04-10 11:45:56 · 535 阅读 · 0 评论 -
力扣刷题 DAY_61 回溯
Leetcode77链接:力扣。题目:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]思路:很基础的递归回溯题目。递归回溯的本质就是暴力穷举,列举所有可能找到所需要的情况。参考代码:class Solution {public: vector<vecto...原创 2022-04-09 11:23:12 · 875 阅读 · 0 评论 -
力扣刷题 DAY_60 二叉树
Leetcode60链接:力扣。题目:给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。说明:节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左右子树也必须是二叉搜索树。示例:输入:root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]..原创 2022-04-07 11:56:53 · 437 阅读 · 0 评论 -
力扣刷题 DAY_59 二叉树
Leetcode108链接:力扣。题目:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树(二叉平衡树)。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:或输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9]也是正确的输出思路:题目中说要转换为一棵高度平衡二叉搜索树。这和转换为一棵普通二叉搜索树有...原创 2022-04-06 15:17:28 · 908 阅读 · 0 评论 -
力扣刷题 DAY_58 二叉树
Leetcode669链接:力扣。题目:给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例:输入:root = [1,0,2], low = 1, high = 2输出:[1,null,2]思路:对于本题,我们不再使用遍历的思路。而是由根结点出发,根据当前结点的值逐层向下递归。对于每层当前结点root的...原创 2022-04-05 14:39:29 · 90 阅读 · 0 评论 -
力扣刷题 DAY_57 二叉树
Leetcode450链接:力扣。题目:给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点; 如果找到了,删除它。 说明: 要求算法时间复杂度为 $O(h)$,h 为树的高度。示例:输入:root = [5,3,6,2,4,null,7], key = 3输出:[5,4,6,2,null,null,.原创 2022-04-04 15:22:41 · 93 阅读 · 0 评论 -
力扣刷题 DAY_56 二叉树
Leetcode701链接:力扣题目:给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。示例:输入的树:输出的树: 或者 输入:root = [4,2,7,1,3], val = 5...原创 2022-04-03 11:28:09 · 66 阅读 · 0 评论 -
力扣刷题 DAY_55 二叉树
Leetcode236链接:力扣。题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:The LCA of nodes 5 and 1 is 3..原创 2022-04-02 16:44:58 · 66 阅读 · 0 评论 -
力扣刷题 DAY_54 二叉树
Leetcode501链接:力扣。题目:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树示例1:输入:root = [1,null,2,2]输出:[2]示例2:输入:root = [0]输出:[0]...原创 2022-04-01 12:19:43 · 89 阅读 · 0 评论 -
力扣刷题 DAY_53 二叉树
Leetcode580链接:力扣。题目:给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。说明:树中至少有 2 个节点。示例1:输入:root = [4,2,6,1,3]输出:1示例2:输入:root = [1,0,48,null,null,12,49]输出:1思路:题目中要求在二叉搜索树上任意两节点的差的绝对值的最小值。注意是二叉搜索树,二叉搜索树可是有序的。遇到在二叉搜索树上求什么最值啊,差值之类的...原创 2022-03-31 11:54:34 · 858 阅读 · 0 评论 -
力扣刷题 DAY_52 二叉树
Leetcode98链接:力扣。题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例1:输入:root = [2,1,3]输出:true示例2:输入:root = [5,1,4,null,null,3,6]输出:false解释:The root node's value is 5 bu...原创 2022-03-29 11:37:15 · 85 阅读 · 0 评论 -
力扣刷题 DAY_51 二叉树
Leetcode700链接:力扣。题目:给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。示例:输入:root = [4,2,7,1,3], val = 2输出:[2,1,3]思路:二叉搜索树(BST)是一个有序树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树..原创 2022-03-28 11:00:57 · 100 阅读 · 0 评论