- 博客(104)
- 收藏
- 关注
原创 Python版day60
个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。
2023-07-28 13:27:01
331
原创 Python版day59
给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素。数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。链接:https://leetcode.cn/problems/next-greater-element-ii。商业转载请联系官方授权,非商业转载请注明出处。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
2023-07-28 08:34:42
318
原创 Python版day58
对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素。给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。返回一个长度为 nums1.length 的数组 ans 作为答案,满足 ans[i] 是如上所述的 下一个更大元素。来源:力扣(LeetCode)
2023-07-26 17:08:32
397
原创 Python版day57
链接:https://leetcode.cn/problems/palindromic-substrings。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。子字符串 是字符串中的由连续字符组成的一个序列。回文字符串 是正着读和倒过来读一样的字符串。来源:力扣(LeetCode)
2023-07-26 08:27:26
226
原创 Python版day56
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。链接:https://leetcode.cn/problems/edit-distance。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。可以删除任意一个字符串中的一个字符。来源:力扣(LeetCode)
2023-07-25 08:46:43
82
原创 Python版day55
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。链接:https://leetcode.cn/problems/is-subsequence。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给定字符串 s 和 t ,判断 s 是否为 t 的子序列。题目数据保证答案符合 32 位带符号整数范围。来源:力扣(LeetCode)
2023-07-24 14:18:58
85
原创 Python版day52
连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。
2023-07-24 11:04:04
68
原创 Python版day53
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。是数组中的一个连续部分。
2023-07-24 09:11:27
82
原创 Python版day51
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee。链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。著作权归领扣网络所有。
2023-07-21 08:29:14
106
原创 Python版day50
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii。链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iv。给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格,和一个整型 k。也就是说,你最多可以买 k 次,卖 k 次。给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。
2023-07-20 14:49:47
81
原创 Pyhthon版Day49
链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii。链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock。在每一天,你可以决定是否购买和/或出售股票。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
2023-07-20 08:24:57
58
原创 Pyhthon版Day48
同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。
2023-07-19 08:50:05
92
原创 Python版 Day 46
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s。链接:https://leetcode.cn/problems/word-break。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。来源:力扣(LeetCode)
2023-07-18 08:13:30
221
原创 Python版Day45
完全平方数 是一个整数,其值等于另一个整数的平方;例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。链接:https://leetcode.cn/problems/perfect-squares。链接:https://leetcode.cn/problems/coin-change。注意这是求排列问题,1、2步 和 2、1步都是上三个台阶,但是这两种方法不一样。给你一个整数 n ,返回 和为 n 的完全平方数的最少数量。你可以认为每种硬币的数量是无限的。先遍历背包再遍历物品。
2023-07-17 13:36:52
89
原创 Python版day44
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target。第i件物品的重量是weight[i],得到的价值是value[i]。链接:https://leetcode.cn/problems/combination-sum-iv。链接:https://leetcode.cn/problems/coin-change-ii。给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。请注意,顺序不同的序列被视作不同的组合。假设每一种面额的硬币有无限个。
2023-07-17 08:37:32
122
原创 Python版day39
机器人试图达到网格的右下角(在下图中标记为 “Finish” )。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。链接:https://leetcode.cn/problems/unique-paths-ii。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。链接:https://leetcode.cn/problems/unique-paths。
2023-07-12 08:20:11
98
原创 Python版day38
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。链接:https://leetcode.cn/problems/min-cost-climbing-stairs。商业转载请联系官方授权,非商业转载请注明出处。开始,后面的每一项数字都是前面两项数字的和。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。你有多少种不同的方法可以爬到楼顶呢?请你计算并返回达到楼梯顶部的最低花费。来源:力扣(LeetCode)
2023-07-11 08:36:16
116
原创 Python版day37
一旦出现strNum[i-1] >strNum[i]的情况,首先让strNum[i-1]减一,strNum[i] 赋值为9。当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。还有个问题:终止条件为遇到了空节点,那么空节点的状态一定为有覆盖不然叶子节点就得放摄像头了。首先不能把摄像头放在叶子节点上、不然就浪费一层的覆盖。局部最优:让叶子节点的父节点按摄像头,所用摄像头最少。给定一个二叉树,我们在树的节点上安装摄像头。计算监控树的所有节点所需的最小摄像头数量。
2023-07-10 08:30:19
126
原创 Python版day36
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。链接:https://leetcode.cn/problems/non-overlapping-intervals。链接:https://leetcode.cn/problems/merge-intervals。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s。
2023-07-07 08:38:45
102
原创 Python版day35
在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被 引爆。可以射出的弓箭的数量 没有限制。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。
2023-07-06 08:44:32
75
原创 Python版day34
给定两个整数数组 gas 和 cost ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。链接:https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations。在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目。
2023-07-05 09:04:19
64
原创 Python版day32
相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])如果下标达到了当前这一步最大覆盖最远距离,还没有到达终点的话,那么就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。最终利润是可以分解的,假如第0天买入,第3天卖出,那么例如为prices[3] - prices[0]给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。初始位置为 nums[0]。
2023-07-04 08:51:34
78
原创 Python版day31
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
2023-07-03 08:54:44
98
原创 Python版day30
如果存在多种有效的行程,请你按字典排序返回最小的行程组合。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。
2023-06-30 10:17:17
135
原创 Python版day29
去重先排序 然后再用 if (i >0 and nums[i]==nums[i-1] and used[i-1]==False) 来判断 同一树层只选一次。给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素。链接:https://leetcode.cn/problems/non-decreasing-subsequences。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。给定一个不含重复数字的数组。返回所有不重复的全排列。
2023-06-29 09:04:55
81
原创 Python版day28
给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 '.' 来形成。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回该数组所有可能的子集(幂集)。
2023-06-28 09:07:55
84
原创 Python版day27
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。注意:解集不能包含重复的组合。
2023-06-27 09:08:08
86
原创 Python版day25
链接:https://leetcode.cn/problems/letter-combinations-of-a-phone-number。链接:https://leetcode.cn/problems/combination-sum-iii。给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。返回 所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可以以任何顺序返回。给出数字到字母的映射如下(与电话按键相同)。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2023-06-26 08:22:40
151
原创 Python版day24
举个例子,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。从2开始搜索都是合理的,可以是组合[2, 3, 4]
2023-06-25 08:16:17
46
原创 Python版day23
修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在 唯一的答案。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。链接:https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree。节点的右子树仅包含键 大于 节点键的节点。
2023-06-23 09:21:36
461
原创 Python版day22
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。著作权归领扣网络所有。
2023-06-22 09:28:13
210
原创 Python版day21
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree。给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。结点右子树中所含节点的值 大于等于 当前节点的值。
2023-06-21 09:10:26
167
原创 Python版day20
想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。链接:https://leetcode.cn/problems/search-in-a-binary-search-tree。给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。商业转载请联系官方授权,非商业转载请注明出处。节点的左子树只包含 小于 当前节点的数。
2023-06-20 08:38:38
879
原创 Python版day18
判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum。链接:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal。给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。叶子节点 是指没有子节点的节点。
2023-06-19 08:45:26
133
原创 Python版day17
给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。,返回所有从根节点到叶子节点的路径。,返回所有左叶子之和。只能通过父节点来判断左叶子。给你一个二叉树的根节点。是指没有子节点的节点。
2023-06-16 08:39:26
41
原创 Python版day16
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。要注意:叶子节点是指没有左右子节点的节点。给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。叶子节点是指没有子节点的节点。叶子节点是指没有子节点的节点。递归 卧槽比循环还慢!
2023-06-15 09:04:01
343
原创 Python版day15
(即逐层地,从左到右访问所有节点)。,翻转这棵二叉树,并返回其根节点。, 检查它是否轴对称。给你一棵二叉树的根节点。给你一个二叉树的根节点。
2023-06-14 08:19:58
39
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人