
贪心
我很忙2010
咩
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 将区间分为最少组数
如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是。所有区间互不相交,所以我们可以把它们全部放在一个组内。- 第 2 组:[2, 3] ,[5, 10]。- 第 1 组:[1, 5] ,[6, 8]。属于一个组,且同一个组中任意两个区间。可以证明无法将区间划分为少于 3 个组。- 第 3 组:[1, 10]。划分为一个或者多个区间。给你一个二维整数数组。需要划分成多少个组。原创 2022-09-12 13:09:39 · 284 阅读 · 1 评论 -
leetcode 收集垃圾的最少总时间
总共花费 7 + 15 + 15 = 37 分钟收拾完所有的垃圾。收拾玻璃的垃圾车总共花费 13 分钟收拾完所有的玻璃垃圾。所以总共花费 8 + 13 = 21 分钟收拾完所有垃圾。由于没有金属垃圾,收拾金属的垃圾车不需要花费任何时间。收拾玻璃的垃圾车花费 15 分钟收拾完所有的玻璃垃圾。收拾纸的垃圾车总共花费 8 分钟收拾完所有的纸垃圾。收拾金属的垃圾车花费 7 分钟收拾完所有的金属垃圾。收拾纸的垃圾车花费 15 分钟收拾完所有的纸垃圾。1. 收拾房子 0 的玻璃垃圾。4. 收拾房子 2 的玻璃垃圾。..原创 2022-08-28 23:10:28 · 323 阅读 · 0 评论 -
leetcode 小于等于 K 的最长二进制子序列
给你一个二进制字符串 和一个正整数 。请你返回 的 最长 子序列,且该子序列对应的 二进制 数字小于等于 。注意:示例 1:输入:s = "1001010", k = 5输出:5解释:s 中小于等于 5 的最长子序列是 "00010" ,对应的十进制数字是 2 。注意 "00100" 和 "00101" 也是可行的最长子序列,十进制分别对应 4 和 5 。最长子序列的长度为 5 ,所以返回 5 。示例 2原创 2022-06-19 15:30:02 · 302 阅读 · 0 评论 -
leetcode 装满石头的背包的最大数量
现有编号从0到n - 1的n个背包。给你两个下标从0开始的整数数组capacity和rocks。第i个背包最大可以装capacity[i]块石头,当前已经装了rocks[i]块石头。另给你一个整数additionalRocks,表示你可以放置的额外石头数量,石头可以往 任意 背包中放置。请你将额外的石头放入一些背包中,并返回放置后装满石头的背包的最大数量。示例 1:输入:capacity = [2,3,4,5], rocks = [1,2,4,4...原创 2022-05-22 22:26:42 · 243 阅读 · 0 评论 -
leetcode 将数组和减半的最少操作次数
给你一个正整数数组nums。每一次操作中,你可以从nums中选择任意一个数并将它减小到恰好一半。(注意,在后续操作中你可以对减半过的数继续执行操作)请你返回将nums数组和至少减少一半的最少操作数。示例 1:输入:nums = [5,19,8,1]输出:3解释:初始 nums 的和为 5 + 19 + 8 + 1 = 33 。以下是将数组和减少至少一半的一种方法:选择数字 19 并减小为 9.5 。选择数字 9.5 并减小为 4.75 。选择数字 8...原创 2022-03-19 23:59:26 · 1208 阅读 · 0 评论 -
leetcode 字符串中最多数目的子字符串
给你一个下标从0开始的字符串text和另一个下标从0开始且长度为2的字符串pattern,两者都只包含小写英文字母。你可以在text中任意位置插入一个字符,这个插入的字符必须是pattern[0]或者pattern[1]。注意,这个字符可以插入在text开头或者结尾的位置。请你返回插入一个字符后,text中最多包含多少个等于pattern的子序列。子序列指的是将一个字符串删除若干个字符后(也可以不删除),剩余字符保持原本顺序得到的字符串。...原创 2022-03-19 23:49:36 · 460 阅读 · 0 评论 -
leetcode 构造限制重复的字符串
给你一个字符串s和一个整数repeatLimit,用s中的字符构造一个新字符串repeatLimitedString,使任何字母连续出现的次数都不超过repeatLimit次。你不必使用s中的全部字符。返回字典序最大的repeatLimitedString。如果在字符串a和b不同的第一个位置,字符串a中的字母在字母表中出现时间比字符串b对应的字母晚,则认为字符串a比字符串b字典序更大。如果字符串中前min(a.length, b.leng...原创 2022-02-21 00:12:57 · 381 阅读 · 0 评论 -
leetcode 拆分成最多数目的偶整数之和
给你一个整数finalSum。请你将它拆分成若干个互不相同的偶整数之和,且拆分出来的偶整数数目最多。比方说,给你finalSum = 12,那么这些拆分是符合要求的(互不相同的偶整数且和为finalSum):(2 + 10),(2 + 4 + 6)和(4 + 8)。它们中,(2 + 4 + 6)包含最多数目的整数。注意finalSum不能拆分成(2 + 2 + 4 + 4),因为拆分出来的整数必须互不相同。请你返回一个整数数组,表示将整数拆分成最多数目的偶整...原创 2022-02-20 23:08:33 · 252 阅读 · 0 评论 -
leetcode 得到目标值的最少行动次数
你正在玩一个整数游戏。从整数1开始,期望得到整数target。在一次行动中,你可以做下述两种操作之一:递增,将当前整数的值加 1(即,x = x + 1)。 加倍,使当前整数的值翻倍(即,x = 2 * x)。在整个游戏过程中,你可以使用递增操作任意次数。但是只能使用加倍操作至多maxDoubles次。给你两个整数target和maxDoubles,返回从 1 开始得到target需要的最少行动次数。示例 1:输入:target = 5,...原创 2022-01-16 15:14:09 · 439 阅读 · 0 评论 -
leetcode 从房屋收集雨水需要的最少水桶数
给你一个下标从0开始的字符串street。street中每个字符要么是表示房屋的'H',要么是表示空位的'.'。你可以在空位放置水桶,从相邻的房屋收集雨水。位置在i - 1或者i + 1的水桶可以收集位置为i处房屋的雨水。一个水桶如果相邻两个位置都有房屋,那么它可以收集两个房屋的雨水。在确保每个房屋旁边都至少有一个水桶的前提下,请你返回需要的最少水桶数。如果无解请返回-1。示例 1:输入:street = "H..H"输出:2解...原创 2021-11-28 15:40:12 · 3410 阅读 · 0 评论 -
leetcode 2017. 网格游戏(C++、java、python)
给你一个下标从0开始的二维数组grid,数组大小为2 x n,其中grid[r][c]表示矩阵中(r, c)位置上的点数。现在有两个机器人正在矩阵上参与一场游戏。两个机器人初始位置都是(0, 0),目标位置是(1, n-1)。每个机器人只会向右((r, c)到(r, c + 1)) 或向下((r, c)到(r + 1, c)) 。游戏开始,第一个机器人从(0, 0)移动到(1, n-1),并收集路径上单元格的全部点数。对于路径上所有单元格(r,...原创 2021-09-30 00:06:24 · 248 阅读 · 0 评论 -
leetcode 游戏中弱角色的数量(C++、java、python)
你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击和防御。给你一个二维整数数组properties,其中properties[i] = [attacki, defensei]表示游戏中第i个角色的属性。如果存在一个其他角色的攻击和防御等级都严格高于该角色的攻击和防御等级,则认为该角色为弱角色。更正式地,如果认为角色i弱于存在的另一个角色j,那么attackj> attacki且defensej> defensei。返回弱角色的数量...原创 2021-09-05 23:58:05 · 267 阅读 · 0 评论 -
leetcode 5835. 最大方阵和(C++)
给你一个n x n的整数方阵matrix。你可以执行以下操作任意次:选择matrix中相邻两个元素,并将它们都乘以-1。如果两个元素有公共边,那么它们就是相邻的。你的目的是最大化方阵元素的和。请你在执行以上操作之后,返回方阵的最大和。示例 1:输入:matrix = [[1,-1],[-1,1]]输出:4解释:我们可以执行以下操作使和等于 4 :- 将第一行的 2 个元素乘以 -1 。- 将第一列的 2 个元素乘以 -1 。...原创 2021-08-22 01:35:02 · 282 阅读 · 0 评论 -
leetcode 1946. 子字符串突变后可能得到的最大整数(C++、java、python)
给你一个字符串num,该字符串表示一个大整数。另给你一个长度为10且下标从 0 开始的整数数组change,该数组将0-9中的每个数字映射到另一个数字。更规范的说法是,数字d映射为数字change[d]。你可以选择突变num的任一子字符串。突变子字符串意味着将每位数字num[i]替换为该数字在change中的映射(也就是说,将num[i]替换为change[num[i]])。请你找出在对num的任一子字符串执行突变操作(也可以不执行)后,可能...原创 2021-07-28 01:09:47 · 149 阅读 · 0 评论 -
leetcode 5805. 最小未被占据椅子的编号(C++、java、python)
有n个朋友在举办一个派对,这些朋友从0到n - 1编号。派对里有无数张椅子,编号为0到infinity。当一个朋友到达派对时,他会占据编号最小且未被占据的椅子。比方说,当一个朋友到达时,如果椅子0,1和5被占据了,那么他会占据2号椅子。当一个朋友离开派对时,他的椅子会立刻变成未占据状态。如果同一时刻有另一个朋友到达,可以立即占据这张椅子。给你一个下标从0开始的二维整数数组times,其中times[i] = [arrivali, leavingi...原创 2021-07-25 01:02:00 · 267 阅读 · 1 评论 -
leetcode 5801. 消灭怪物的最大数量(C++、java、python)
你正在玩一款电子游戏,在游戏中你需要保护城市免受怪物侵袭。给你一个下标从 0 开始且长度为n的整数数组dist,其中dist[i]是第i个怪物与城市的初始距离(单位:米)。怪物以恒定的速度走向城市。给你一个长度为n的整数数组speed表示每个怪物的速度,其中speed[i]是第i个怪物的速度(单位:米/分)。怪物从第 0 分钟时开始移动。你有一把武器,并可以选择在每一分钟的开始时使用,包括第 0 分钟。但是你无法在一分钟的中间使用武器。这种武器威力惊...原创 2021-07-04 16:22:57 · 695 阅读 · 0 评论 -
leetcode 5773. 插入后的最大值(C++)
给你一个非常大的整数n和一个整数数字x,大整数n用一个字符串表示。n中每一位数字和数字x都处于闭区间[1, 9]中,且n可能表示一个负数。你打算通过在n的十进制表示的任意位置插入x来最大化n的数值。但不能在负号的左边插入x。例如,如果n = 73且x = 6,那么最佳方案是将6插入7和3之间,使n = 763。 如果n = -55且x = 2,那么最佳方案是将2插在第一个5之前,使n = ...原创 2021-05-30 17:45:24 · 441 阅读 · 0 评论 -
leetcode 649. Dota2 参议院(C++)
Dota2 的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项: 禁止一名参议员的权利: 参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。 宣布胜利: 如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。给定...原创 2020-12-11 00:33:08 · 342 阅读 · 0 评论 -
leetcode 5614. 找出最具竞争力的子序列(C++)
给你一个整数数组nums和一个正整数k,返回长度为k且最具竞争力的nums子序列。数组的子序列是从数组中删除一些元素(可能不删除元素)得到的序列。在子序列a和子序列b第一个不相同的位置上,如果a中的数字小于b中对应的数字,那么我们称子序列a比子序列b(相同长度下)更具竞争力。 例如,[1,3,4]比[1,3,5]更具竞争力,在第一个不相同的位置,也就是最后一个位置上,4小于5。示例 1:输入:nums = [3,5,2,6]...原创 2020-11-29 22:25:44 · 475 阅读 · 0 评论 -
leetcode 5608. 完成所有任务的最少初始能量(C++)
给你一个任务数组tasks,其中tasks[i] = [actuali, minimumi]:actuali是完成第i个任务需要耗费的实际能量。 minimumi是开始第i个任务前需要达到的最低能量。比方说,如果任务为[10, 12]且你当前的能量为11,那么你不能开始这个任务。如果你当前的能量为13,你可以完成这个任务,且完成它后剩余能量为3。你可以按照任意顺序完成任务。请你返回完成所有任务的最少初始能量。示例 1:输入:ta...原创 2020-11-22 15:31:59 · 480 阅读 · 0 评论 -
leetcode 5606. 具有给定数值的最小字符串(C++)
小写字符的数值是它在字母表中的位置(从1开始),因此a的数值为1,b的数值为2,c的数值为3,以此类推。字符串由若干小写字符组成,字符串的数值为各字符的数值之和。例如,字符串"abe"的数值等于1 + 2 + 5 = 8。给你两个整数n和k。返回长度等于n且数值等于k的字典序最小的字符串。注意,如果字符串x在字典排序中位于y之前,就认为x字典序比y小,有以下两种情况:x是y的一个前缀; 如果i是...原创 2020-11-22 14:33:40 · 359 阅读 · 0 评论 -
leetcode 402. 移掉K位数字(C++)
给定一个以字符串表示的非负整数num,移除这个数中的k位数字,使得剩下的数字最小。注意:num的长度小于 10002 且≥k。 num不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "10200", k = 1输出: "200"解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何...原创 2020-11-21 01:05:31 · 337 阅读 · 0 评论 -
leetcode 5562. 字符频次唯一的最小删除次数(C++)
如果字符串s中不存在两个不同字符频次相同的情况,就称s是优质字符串。给你一个字符串s,返回使s成为优质字符串需要删除的最小字符数。字符串中字符的频次是该字符在字符串中的出现次数。例如,在字符串"aab"中,'a'的频次是2,而'b'的频次是1。示例 1:输入:s = "aab"输出:0解释:s 已经是优质字符串。示例 2:输入:s = "aaabbbcc"输出:2解释:可以删除两个 'b' , 得到优质字符串 ...原创 2020-11-08 13:07:56 · 333 阅读 · 0 评论 -
leetcode 5493. 删除最短的子数组使剩余数组有序(C++)
给你一个整数数组arr,请你删除一个子数组(可以为空),使得arr中剩下的元素是非递减的。一个子数组指的是原数组中连续的一个子序列。请你返回满足题目要求的最短子数组的长度。示例 1:输入:arr = [1,2,3,10,4,2,3,5]输出:3解释:我们需要删除的最短子数组是 [10,4,2] ,长度为 3 。剩余元素形成非递减数组 [1,2,3,3,5] 。另一个正确的解为删除子数组 [3,10,4] 。示例 2:输入:arr = [5,4,3,2,1]...原创 2020-09-06 01:19:38 · 513 阅读 · 0 评论 -
leetcode 5477. 排布二进制网格的最少交换次数(C++)
给你一个nx n的二进制网格grid,每一次操作中,你可以选择网格的相邻两行进行交换。一个符合要求的网格需要满足主对角线以上的格子全部都是0。请你返回使网格满足要求的最少操作次数,如果无法使网格符合要求,请你返回-1。主对角线指的是从(1, 1)到(n, n)的这些格子。示例 1:输入:grid = [[0,0,1],[1,1,0],[1,0,0]]输出:3示例 2:输入:grid = [[0,1,1,0],[0,1,1,0],[...原创 2020-08-02 23:27:28 · 328 阅读 · 0 评论 -
leetcode 5473. 灯泡开关 IV(C++)
房间中有n个灯泡,编号从0到n-1,自左向右排成一行。最开始的时候,所有的灯泡都是关着的。请你设法使得灯泡的开关状态和target描述的状态一致,其中target[i]等于1第i个灯泡是开着的,等于0意味着第i个灯是关着的。有一个开关可以用于翻转灯泡的状态,翻转操作定义如下:选择当前配置下的任意一个灯泡(下标为i) 翻转下标从i到n-1的每个灯泡翻转时,如果灯泡的状态为0就变为1,为1就变为0。返回达成target描述...原创 2020-07-26 11:55:42 · 504 阅读 · 0 评论 -
leetcode 1353. 最多可以参加的会议数目(C++)
给你一个数组events,其中events[i] = [startDayi, endDayi],表示会议i开始于startDayi,结束于endDayi。你可以在满足startDayi<= d <= endDayi中的任意一天d参加会议i。注意,一天只能参加一个会议。请你返回你可以参加的最大会议数目。示例 1:输入:eve...原创 2020-02-16 16:00:43 · 935 阅读 · 0 评论