每日刷题
文章平均质量分 70
乐超kawhi
星鹏此去路迢迢,为负劳心此一遭。愿得知识堪堪了,也堪将去夸尔曹。超福人生,醉美生活。他冀与她,看遍风雨,慢慢变老。
展开
-
每日一题 2580统计将重叠区间合并成组的方案数
合并区间!!原创 2024-03-27 10:11:46 · 495 阅读 · 0 评论 -
每日一题 518 零钱兑换Ⅱ
递推公式:f[i][j] =f[i-1][j] + f[i][j-coins[i-1]];动归五部曲,首先定义f[i][j]表示使用前i种硬币,凑出金额j的硬币组合数;二者相加得到:dfs(i-1,c)+dfs(i,c-coins[i])选第i种硬币,dfs(i,c-coins[i])递推顺序:外循环,遍历钱币,主要是为了让出现过的钱币不再使用到。不再继续选第i种硬币,dfs(i-1,c)递归边界:dfs(-1,0)=1;表示不同面额的硬币,另给一个整数。初始化,f[0][0]=1;原创 2024-03-25 11:41:36 · 475 阅读 · 0 评论 -
每日一题 1969 数组元素的最小非零乘积
链接:https://leetcode.cn/problems/minimum-non-zero-product-of-the-array-elements/solutions/936621/tan-xin-ji-qi-shu-xue-zheng-ming-by-endl-uumv/数组乘积 1 * 6 * 1 * 6 * 1 * 6 * 7 = 1512 是最小乘积。- 第一次操作中,我们交换第二个和第五个元素最左边的数位。- 第二次操作中,我们交换第三个和第四个元素中间的数位。请你算出进行以上操作。原创 2024-03-20 09:19:47 · 278 阅读 · 0 评论 -
每日一题 2312卖木头快
纵向切割依次计算 m * 1 + m * (n - 1), m * 2 + m * (n - 2), ......横向切割依次计算 1 * n + (m - 1) * n, 2 * n + (m -2) * n, ......- 2 块 2 x 2 的小木块,售出 2 * 7 = 14 元。- 1 块 2 x 1 的小木块,售出 1 * 3 = 3 元。- 1 块 1 x 4 的小木块,售出 1 * 2 = 2 元。- 1 块 1 x 4 的小木块,售出 1 * 2 = 2 元。上图展示了一个可行的方案。原创 2024-03-15 09:11:45 · 859 阅读 · 0 评论 -
每日一题 2789合并后数组中的最大元素
3.如果 nums[i]>sum,无法合并,并且这意味着从 i开始向左合并可以得到比 sum 更大的元素和,所以直接更新 sum=nums[i],继续向左合并。从后往前扫描,保存当前最大值;当前一值比后一值小时,停止开始累加,当前最大值与全局最大值做个比较,然后留下较大值;1.初始化元素和 sum=nums[n−1],表示从 n−1开始向左合并。从 i=n−2开始倒着遍历数组。2.如果 nums[i]≤sum,那么就合并,把 sum增加 nums[i]。4.遍历结束,返回 sum。原创 2024-03-14 10:00:01 · 401 阅读 · 0 评论 -
每日一题 2864 最大二进制奇数
其中一个 '1' 必须出现在最后一位上。而由剩下的数字可以生产的最大数字是 "100"。所以答案是 "1001"。因为字符串 s 中仅有一个 '1' ,其必须出现在最后一位上。所以答案是 "001"。1.其实感觉统计字符1的个数就好,然后末尾放1,然后从左往右重新排列字符串。以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。字符串中的位,使得到的二进制数字是可以由该组合生成的。再来一个C++,快慢指针,快人一步!原创 2024-03-13 14:57:46 · 393 阅读 · 0 评论 -
每日一题 2368受限条件下可到达节点的数目
在不访问受限节点的前提下,只有节点 [0,1,2,3] 可以从节点 0 到达。在不访问受限节点的前提下,只有节点 [0,5,6] 可以从节点 0 到达。然后建树,只有当两个节点都不是受限的(都不在哈希集合中)才连边。从 0出发 DFS 这棵树,统计能访问到的节点个数,即为答案。在不访问受限节点的前提下,返回你可以从节点。个节点组成的无向树,节点编号从。用布尔数组记录哪些节点是受限的。给你一个二维整数数组。上图所示正是这棵树。上图所示正是这棵树。原创 2024-03-02 12:01:57 · 393 阅读 · 0 评论 -
每日一题 2369
这一二条有重合的部分,想象如果满足二必定满足一,所以只需要判断一是否满足,如果是,则直接跳出;不满足一也不可能满足二,直接不用判断条件二了;一判断结束,开始判断三。数组可以划分成子数组 [4,4] 和 [4,5,6]。如果获得的这些子数组中每个都能满足下述条件。这是一种有效划分,所以返回 true。,你必须将数组划分为一个或多个。感觉子串的题很多都是滑动窗口?,则可以称其为数组的一种。没试出来,直奔题解,哦,dp。存在一种有效划分,返回。该数组不存在有效划分。原创 2024-03-01 17:14:27 · 892 阅读 · 0 评论 -
每日一题 2867统计树中的合法路径
(1, 2) 因为路径 1 到 2 只包含一个质数 2。- (1, 3) 因为路径 1 到 3 只包含一个质数 3。- (1, 4) 因为路径 1 到 4 只包含一个质数 2。- (2, 4) 因为路径 2 到 4 只包含一个质数 2。- (1, 2) 因为路径 1 到 2 只包含一个质数 2。- (1, 3) 因为路径 1 到 3 只包含一个质数 3。- (1, 4) 因为路径 1 到 4 只包含一个质数 2。- (2, 4) 因为路径 2 到 4 只包含一个质数 2。原创 2024-02-27 10:02:30 · 1282 阅读 · 0 评论 -
每日一题 429.N叉树的层序遍历
添加子节点: 若 node 的左(右)子节点不为空,则将左(右)子节点加入队列 queue。2.初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root]。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。当前层打印循环: 循环次数为当前层节点数(即队列 queue 长度)。4.新建一个临时列表 tmp ,用于存储当前层打印结果。1.特例处理: 当根节点为空,则返回空列表 []。返回值: 返回打印结果列表 res 即可。原创 2024-02-17 16:39:03 · 377 阅读 · 0 评论 -
每日一题 力扣107 二叉树的层序遍历Ⅱ
(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)层序遍历,回复时倒序即可。原创 2024-02-15 14:48:11 · 527 阅读 · 1 评论 -
每日一题 力扣993.二叉树的堂兄弟节点
深度优先搜索遍历,使用两类四个变量存储x,y两个值的深度以及父节点,遍历函数中传入该节点、父节点、深度以及要遍历寻找的两个数,找到则放入存储。最后判断,当且仅当深度相同且父节点不同时,返回True,否则返回False。我们给出了具有唯一值的二叉树的根节点。对应的节点是堂兄弟节点时,才返回。如果二叉树的两个节点深度相同,但。,以及树中两个不同节点的值。在二叉树中,根节点位于深度。的节点的子节点位于深度。原创 2024-02-08 08:26:14 · 375 阅读 · 0 评论 -
每日一题 力扣2641二叉树的堂兄弟节点Ⅱ
再遍历节点时,在父节点处进行修改,更改子节点的值,判断有无兄弟节点,在列表中求和并删除自身与兄弟节点即可。- 值为 7 的节点有两个堂兄弟,值分别为 1 和 10 ,所以值修改为 11。- 值为 10 的节点有一个堂兄弟,值为 7 ,所以值修改为 7。- 值为 1 的节点有一个堂兄弟,值为 7 ,所以值修改为 7。,一个节点的深度指的是从树根节点到这个节点经过的边数。- 值为 5 的节点没有堂兄弟,所以值修改为 0。- 值为 1 的节点没有堂兄弟,所以值修改为 0。请你返回修改值之后,树的根。原创 2024-02-07 13:57:00 · 378 阅读 · 0 评论 -
每日一题 力扣LCP30.魔塔游戏
小扣当前位于魔塔游戏第一层,共有N个房间,编号为0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组nums,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造成伤害值,即血量减少对应数值;0表示房间对血量无影响。。假定小扣原计划按房间编号升序访问所有房间补血/打怪,,小扣需对房间访问顺序进行调整,。请返回小扣最少需要调整几次,才能顺利访问所有房间。若调整顺序也无法访问完全部房间,请返回 -1。1解释:初始血量为 1。至少需要将 nums[3] 调整至访问顺序末尾以满足要求。-1。原创 2024-02-06 21:36:08 · 646 阅读 · 0 评论 -
每日一题 力扣1696跳跃游戏
仔细想一想,这个复杂度其实体现在了对于i位置前k个位置里的最大得分的计算上,联想一下,这个其实和滑动窗口类似,因此我们借鉴之前滑动窗口的方法来确定该值,降低时间复杂度!递归式:dp[i]=max(dp[i],max(dp[j]+nums[i])) 其中j∈(i-k,i)1.动态规划:双重循环,动态规划,dp[i]代表跳到i位置获得的最大分值;你可以选择子序列 [1,-1,4,3] (上面加粗的数字),和为 7。你可以选择子序列 [10,4,3] (上面加粗数字),和为 17。原创 2024-02-05 12:53:40 · 604 阅读 · 0 评论 -
每日一题 力扣292 Nim游戏
但是如果石头堆里有八块石头,你就不可避免地会输掉,因为不管你从一堆石头中挑出一块、两块还是三块,你的对手都可以选择三块、两块或一块,以确保在再一次轮到你的时候,你会面对四块石头。如果总的石头数目为 4 的倍数时,因为无论你取多少石头,对方总有对应的取法,让剩余的石头的数目继续为 4 的倍数。对于你或者你的对手取石头时,显然最优的选择是当前己方取完石头后,让剩余的石头的数目为 4 的倍数。因为在这种情况下不管你取走多少石头,总会为你的对手留下几块,他可以将剩余的石头全部取完,从而他可以在游戏中打败你。原创 2024-02-04 10:32:58 · 984 阅读 · 0 评论 -
每日一题 Leetcode1690石子游戏Ⅶ
2.否则,先手有两种选择,分别是移除 stones[i]或 stones[j],然后计算得分差值,即 a=s[j+1]−s[i+1]−dfs(i+1,j)和 b=s[j]−s[i]−dfs(i,j−1),我们取两者中的较大值作为 dfs(i,j)的返回值。游戏情况:爱丽丝=13,鲍勃=0,石子=[5,3,1,4]。游戏情况:爱丽丝 = 13,鲍勃 = 8 ,石子=[3,1,4]。游戏情况:爱丽丝 = 18 ,鲍勃 = 8 ,石子=[1,4]。游戏情况:爱丽丝=18,鲍勃=12,石子=[4]。原创 2024-02-03 11:21:44 · 516 阅读 · 0 评论 -
每日一题 LCP24.数字游戏
i = 2,将 [1,1,1] 操作成 [1,2,3] 或 [0,1,2],最少 2 次操作;i = 3,将 [1,1,1,2] 操作成 [1,2,3,4] 或 [0,1,2,3],最少 3 次操作;i = 4,将 [1,1,1,2,3] 操作成 [-1,0,1,2,3],最少 3 次操作;i = 5,将 [1,1,1,2,3,4] 操作成 [-1,0,1,2,3,4],最少 3 次操作;i = 5,将 [3,4,5,1,6,7] 操作成 [3,4,5,6,7,8],最少 7 次操作;有问题,不是这样的!原创 2024-02-01 15:49:52 · 800 阅读 · 0 评论 -
每日一题 力扣2670找出不同元素数目差数组
对于 i = 1,前缀中有 2 个不同的元素,而在后缀中有 3 个不同的元素。对于 i = 0,前缀中有 1 个不同的元素,而在后缀中有 3 个不同的元素。对于 i = 1,前缀中有 2 个不同的元素,而在后缀中有 3 个不同的元素。对于 i = 2,前缀中有 3 个不同的元素,而在后缀中有 2 个不同的元素。对于 i = 2,前缀中有 2 个不同的元素,而在后缀中有 2 个不同的元素。对于 i = 3,前缀中有 3 个不同的元素,而在后缀中有 1 个不同的元素。然后遍历元素,前缀数组-后缀数组。原创 2024-01-31 11:51:16 · 428 阅读 · 0 评论 -
每日打卡 力扣2808 使循环数组所有元素相等的最少秒数
第 1 秒,将每个位置的元素分别变为 [nums[0],nums[2],nums[2],nums[2],nums[3]]。变化后,nums = [2,3,3,3,3]。- 第 2 秒,将每个位置的元素分别变为 [nums[1],nums[1],nums[2],nums[3],nums[4]]。变化后,nums = [3,3,3,3,3]。- 第 1 秒,将每个位置的元素分别变为 [nums[3],nums[1],nums[3],nums[3]]。变化后,nums = [2,2,2,2]。原创 2024-01-30 13:53:19 · 490 阅读 · 0 评论 -
每日一题 力扣2861 最大合金数
对于初始最大值的确定,要注意到条件,即另加价格至少为1,因此stock[0]+budget是最大的数量。总共需要 5 * 1 + 5 * 2 + 0 * 3 = 15 的金钱,小于等于预算 15。总共需要 2 * 1 + 2 * 2 + 2 * 3 = 12 的金钱,小于等于预算 15。对于某一机器而言,具体的找最大的合金数可以使用二分法,思路看代码注释,一目了然!假设你是一家合金制造公司的老板,你的公司使用多种金属来制造合金。最优的方法是使用第 2 台机器来制造合金。返回公司可以制造的最大合金数。原创 2024-01-27 13:13:09 · 2006 阅读 · 0 评论 -
LeetCode每日一题学习 2024.01.11
熟悉动归的步骤,识别动归,完成动归,找出关键步骤,AC。原创 2024-01-11 19:12:47 · 453 阅读 · 0 评论