自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(382)
  • 收藏
  • 关注

原创 LeetCode 2353. 设计食物评分系统

实现foodscuisinesratingsnfoods[i]iiratings[i]ifoodcuisine注意,字符串x的字典序比字符串yx在字典中出现的位置在y之前,也就是说,要么x是y的前缀,或者在满足的第一个位置i处,x[i]在字母表中出现的位置在y[i]之前。// 返回 "kimchi"// "kimchi" 是分数最高的韩式料理,评分为 9。// 返回 "ramen"// "ramen" 是分数最高的日式料理,评分为 14。// "sushi" 现在评分变更为 16。

2024-08-23 15:35:35 809

原创 LeetCode 2349. 设计数字容器系统

请你实现一个indexnumberindexnumbernumbernumber-1// 没有数字 10 ,所以返回 -1。// 容器中下标为 2 处填入数字 10。// 容器中下标为 1 处填入数字 10。// 容器中下标为 3 处填入数字 10。// 容器中下标为 5 处填入数字 10。// 数字 10 所在的下标为 1 ,2 ,3 和 5。因为最小下标为 1 ,所以返回 1。// 容器中下标为 1 处填入数字 20。注意,下标 1 处之前为 10 ,现在被替换为 20。

2024-08-23 13:58:49 667

原创 LeetCode 1845. 座位预约管理系统

请你设计一个管理n个座位预约的系统,座位编号从1到n。请你实现1nnseatNumber// 初始化 SeatManager ,有 5 个座位。// 所有座位都可以预约,所以返回最小编号的座位,也就是 1。// 可以预约的座位为 [2,3,4,5] ,返回最小编号的座位,也就是 2。// 将座位 2 变为可以预约,现在可预约的座位为 [2,3,4,5]。// 可以预约的座位为 [2,3,4,5] ,返回最小编号的座位,也就是 2。

2024-08-23 11:41:13 665

原创 LeetCode 3066. 超过阈值的最少操作数 II

给你一个下标从开始的整数数组nums和一个整数k。numsxyxynums只有当nums至少包含两个元素时,你才可以执行以上操作。你需要使数组中的所有元素都大于或等于k,请你返回需要的操作次数。2第一次操作中,我们删除元素 1 和 2 ,然后添加 1 * 2 + 2 到 nums 中,nums 变为 [4, 11, 10, 3]。第二次操作中,我们删除元素 3 和 4 ,然后添加 3 * 2 + 4 到 nums 中,nums 变为 [10, 11, 10]。

2024-08-23 11:08:47 394

原创 LeetCode 2208. 将数组和减半的最少操作次数

给你一个正整数数组nums。每一次操作中,你可以从nums中选择一个数并将它减小到一半。(注意,在后续操作中你可以对减半过的数继续执行操作)请你返回将nums数组和减少一半的操作数。3初始 nums 的和为 5 + 19 + 8 + 1 = 33。以下是将数组和减少至少一半的一种方法:选择数字 19 并减小为 9.5。选择数字 9.5 并减小为 4.75。选择数字 8 并减小为 4。最终数组为 [5, 4.75, 4, 1] ,和为 5 + 4.75 + 4 + 1 = 14.75。

2024-08-23 10:55:07 877

原创 LeetCode 1962. 移除石子使总数最小

给你一个整数数组piles,数组,其中piles[i]表示第i堆石子中的石子数量。另给你一个整数k,请你执行下述操作kpiles[i]你可以对石子多次执行此操作。返回执行k次操作后,剩下石子的总数。floor(x)为或x的整数。(即,对x向下取整)。12可能的执行情景如下:- 对第 2 堆石子执行移除操作,石子分布情况变成 [5,4,5- 对第 0 堆石子执行移除操作,石子分布情况变成 [3,4,5]。剩下石子的总数为 12。

2024-08-23 10:24:39 572

原创 LeetCode 2530. 执行 K 次操作后的最大分数

给你一个下标从开始的整数数组nums和一个整数k。你的为0。在一步inums[i]nums[i]返回在执行k次操作后,你可能获得的最大分数。向上取整函数ceil(val)的结果是大于或等于val的最小整数。50对数组中每个元素执行一次操作。最后分数是 10 + 10 + 10 + 10 + 10 = 50。17可以执行下述操作:第 1 步操作:选中 i = 1 ,nums 变为 [1,,3,3,3]。分数增加 10。第 2 步操作:选中 i = 1 ,nums 变为 [1,,3,3,3]。

2024-08-23 10:13:52 513

原创 LeetCode 2336. 无限集中的最小数字

现有一个包含所有正整数的集合。实现numnum// 2 已经在集合中,所以不做任何变更。// 返回 1 ,因为 1 是最小的整数,并将其从集合中移除。// 返回 2 ,并将其从集合中移除。// 返回 3 ,并将其从集合中移除。// 将 1 添加到该集合中。// 返回 1 ,因为 1 在上一步中被添加到集合中,// 且 1 是最小的整数,并将其从集合中移除。// 返回 4 ,并将其从集合中移除。// 返回 5 ,并将其从集合中移除。addBack1000提示 1提示 2。

2024-08-23 09:31:14 815

原创 LeetCode 2558. 从数量最多的堆取走礼物

给你一个整数数组gifts,表示各堆礼物的数量。返回在k秒后剩下的礼物数量。29按下述方式取走礼物:- 在第一秒,选中最后一堆,剩下 10 个礼物。- 接着第二秒选中第二堆礼物,剩下 8 个礼物。- 然后选中第一堆礼物,剩下 5 个礼物。- 最后,再次选中最后一堆礼物,剩下 3 个礼物。最后剩下的礼物数量分别是 [5,8,9,4,3] ,所以,剩下礼物的总数量是 29。4在本例中,不管选中哪一堆礼物,都必须剩下 1 个礼物。也就是说,你无法获取任一堆中的礼物。

2024-08-22 17:24:25 328

原创 LeetCode 1046. 最后一块石头的重量

有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x

2024-08-22 17:00:49 452

原创 LeetCode 826. 安排工作以达到最大收益

你有n个工作和m个工人。给定三个数组:difficultyprofit和workeriprofit[i]iworker[i]iworker[i]每个工人只能安排工作,但是一个工作可以。$1$3$0返回在把工人分配到工作岗位后,我们所能获得的最大利润。100工人被分配的工作难度是 [4,4,6,6] ,分别获得 [20,20,30,30] 的收益。0。

2024-08-22 14:14:09 1021

原创 LeetCode 2071. 你可以安排的最多任务数目

给你n个任务和m个工人。每个任务需要一定的力量值才能完成,需要的力量值保存在下标从开始的整数数组tasks中,第i个任务需要tasks[i]的力量才能完成。每个工人的力量值保存在下标从开始的整数数组workers中,第j个工人的力量值为workers[j]。每个工人只能完成任务,且力量值需要该任务的力量要求值(即除此以外,你还有pills个神奇药丸,可以给增加strength。你可以决定给哪些工人使用药丸,但每个工人只能使用药丸。给你下标从开始的整数数组tasks和workers以及两个整数pills。

2024-08-22 13:23:33 989

原创 LeetCode 1499. 满足不等式的最大值

给你一个数组points和一个整数k。数组中每个元素都表示二维平面上的点的坐标,并按照横坐标 x 的值从小到大排序。也就是说,并且在的前提下,xi < xj总成立。请你找出的,其中且。题目测试数据保证至少存在一对能够满足的点。4前两个点满足 |xi - xj| <= 1 ,代入方程计算,则得到值 3 + 0 + |1 - 2| = 4。第三个和第四个点也满足条件,得到值 10 + -10 + |5 - 6| = 1。没有其他满足条件的点,所以返回 4 和 1 中最大的那个。3。

2024-08-22 08:53:32 503

原创 LeetCode 862. 和至少为 K 的最短子数组

给你一个整数数组nums和一个整数k,找出nums中和至少为k的,并返回该子数组的长度。如果不存在这样的,返回-1。是数组中的一部分。1-13。

2024-08-21 15:38:05 694

原创 LeetCode 2398. 预算内的最多机器人数目

你有n个机器人,给你两个下标从开始的整数数组和,两者长度都为n。第i个机器人充电时间为单位时间,花费单位时间运行。再给你一个整数budget。运行k个机器人是,其中是这k个机器人中最大充电时间,是这k个机器人的运行时间之和。请你返回在budget的前提下,你可以运行的机器人数目为多少。3可以在 budget 以内运行所有单个机器人或者连续运行 2 个机器人。选择前 3 个机器人,可以得到答案最大值 3。

2024-08-21 13:28:31 443

原创 LeetCode LCR 184. 设计自助结算系统

get_max()add(value)valueremove()注意,为保证该系统运转高效性,以上函数的均摊时间复杂度均为 O(1)输入:输出: [null,null,null,7,4,7]输入:[[],[],[]]输出: [null,-1,-1]

2024-08-21 11:40:21 1008

原创 LeetCode 239. 滑动窗口最大值

给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。滑动窗口的位置 最大值[1]提示 1提示 2提示 3。

2024-08-21 10:11:37 995

原创 LeetCode 1670. 设计前中后队列

请你设计一个队列,支持在前,中,后三个位置的push和pop操作。请你完成valvalval-1-1-1请注意当有中间位置的时候,选择靠前面的位置进行操作。63// [// [1,// [1,, 2]// [1,, 3, 2]// 返回 1 -> [4, 3, 2]// 返回 3 -> [4, 2]// 返回 4 -> [2]// 返回 2 -> []// 返回 -1 -> [] (队列为空)1000pushFront,pushBack,popFront,popMiddle。

2024-08-20 16:36:55 1288

原创 LeetCode 641. 设计循环双端队列

设计实现双端队列。实现ktruefalsetruefalsetruefalsetruefalse-1-1truefalsetruefalse// 设置容量大小为3// 返回 true// 返回 true// 返回 true// 已经满了,返回 false// 返回 2// 返回 true// 返回 true// 返回 true// 返回 4insertLastdeleteLastgetFrontgetRearisEmptyisFull2000。

2024-08-20 13:31:54 954

原创 LeetCode 622. 设计循环队列

设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。FrontReardeQueue()isEmpty()isFull()// 设置长度为 3// 返回 true// 返回 true// 返回 true。

2024-08-20 11:19:11 1021

原创 LeetCode 232. 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalsesizeis empty100pushpoppeekemptypoppeekO(1)nO(n)

2024-08-20 10:05:44 905

原创 LeetCode 225. 用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(pushtoppop和empty实现MyStackint pop()int top()truefalsesizeis empty// 返回 2// 返回 2// 返回 False100pushpoptopemptypoptop你能否仅用一个队列来实现栈。

2024-08-20 09:07:49 317

原创 LeetCode 2534. 通过门的时间

n个人,按从0到n - 1编号。现在有一扇门,每个人只能通过门进入或离开一次,耗时一秒。给你一个排列的整数数组arrival,数组长度为n,其中arrival[i]是第i个人到达门前的时间。另给你一个长度为n的数组state,其中state[i]是0则表示第i个人希望进入这扇门,是1则表示 TA 想要离开这扇门。如果返回一个长度为n的数组answer,其中answer[i]是第i个人通过门的时刻(秒)。

2024-08-19 17:26:59 864

原创 LeetCode 1429. 第一个唯一数字

给定一系列整数,插入一个队列中,找出队列中第一个唯一整数。实现// 返回 2// 此时队列为 [2,3,5,5]// 返回 2// 此时队列为 [2,3,5,5,2]// 返回 3// 此时队列为 [2,3,5,5,2,3]// 返回 -1// 返回 -1// 此时队列为 [7,7,7,7,7,7,7]// 此时队列为 [7,7,7,7,7,7,7,3]// 此时队列为 [7,7,7,7,7,7,7,3,3]

2024-08-19 11:45:53 1023

原创 LeetCode 379. 电话目录管理系统

getcheckrelease// 初始化电话目录,包括 3 个电话号码:0,1 和 2。// 可以返回任意未分配的号码,这里我们假设它返回 0。// 假设,函数返回 1。// 号码 2 未分配,所以返回为 true。// 返回 2,分配后,只剩一个号码未被分配。// 此时,号码 2 已经被分配,所以返回 false。// 释放号码 2,将该号码变回未分配状态。// 号码 2 现在是未分配状态,所以返回 true。

2024-08-16 15:28:00 409

原创 LeetCode 362. 敲击计数器

设计一个敲击计数器,使它可以统计在过去5分钟内被敲击次数。(即过去300秒)您的系统应该接受一个时间戳参数timestamp(单位为),并且您可以假定对系统的调用是按时间顺序进行的(即timestamp是单调递增的)。几次撞击可能同时发生。实现HitCountertimestamptimestamptimestamp300// 在时刻 1 敲击一次。// 在时刻 2 敲击一次。// 在时刻 3 敲击一次。// 在时刻 4 统计过去 5 分钟内的敲击次数, 函数返回 3。

2024-08-16 15:07:01 294

原创 LeetCode 649. Dota2 参议院

同理,如果 dire 的首元素较小,那么会永久弹出 radiant 的首元素,剩余的处理方法也是类似的。这样一来,我们就模拟了整个投票的过程,也就可以得到最终的答案了。

2024-08-16 14:44:45 897

原创 LeetCode 2126. 摧毁小行星

给你一个整数mass,它表示一颗行星的初始质量。再给你一个整数数组asteroids,其中是第i颗小行星的质量。你可以按重新安排小行星的顺序,然后让行星跟它们发生碰撞。如果行星碰撞时的质量小行星的质量,那么小行星被,并且行星会这颗小行星的质量。否则,行星将被摧毁。如果所有小行星能被摧毁,请返回true,否则返回false。true一种安排小行星的方式为 [9,19,5,3,21] :- 行星与质量为 9 的小行星碰撞。新的行星质量为:10 + 9 = 19- 行星与质量为 19 的小行星碰撞。

2024-08-16 11:53:37 729

原创 LeetCode 605. 种花问题

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组flowerbed表示花坛,由若干0和1组成,其中0表示没种植花,1表示种植了花。另有一个数n,能否在不打破种植规则的情况下种入n朵花?能则返回true,不能则返回false。truefalse0。

2024-08-16 11:23:17 138

原创 LeetCode 495. 提莫攻击

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续duration秒。正式地讲,提莫在t发起攻击意味着艾希在时间区间(含t和)处于中毒状态。如果提莫在中毒影响结束再次攻击,中毒状态计时器将会,在新的攻击之后,中毒影响将会在duration秒后结束。给你一个的整数数组timeSeries,其中表示提莫在秒时对艾希发起攻击,以及一个表示中毒持续时间的整数duration。返回艾希处于中毒状态的秒数。4。

2024-08-16 10:59:09 798

原创 LeetCode 950. 按递增顺序显示卡牌

牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。返回能以显示卡牌的牌组顺序。答案中的第一张牌被认为处于牌堆顶部。我们得到的牌组顺序为 [17,13,11,2,3,5,7](这个顺序不重要),然后将其重新排序。重新排序后,牌组以 [2,13,3,11,5,17,7] 开始,其中 2 位于牌组的顶部。我们显示 2,然后将 13 移到底部。牌组现在是 [3,11,5,17,7,13]。

2024-08-15 17:29:23 410

原创 LeetCode 933. 最近的请求次数

写一个类来计算特定时间范围内最近的请求。请你实现tt3000每次对ping的调用都使用比之前更大的t值。],范围是 [-2999,1],返回 1],范围是 [-2900,100],返回 2],范围是 [1,3001],返回 3],范围是 [2,3002],返回 3pingtping10^4。

2024-08-15 17:06:13 648

原创 LeetCode 1896. 反转表达式值的最少操作次数

在数字栈中,每个元素是一个二元组。

2024-08-14 10:58:58 1161

原创 LeetCode 2296. 设计一个文本编辑器

当删除文本时,只有光标左边的字符会被删除。光标会留在文本内,也就是说任意时候都成立。请你实现TextEditortexttextkklenklen// 当前 text 为 "|"。('|' 字符表示光标)// 当前文本为 "leetcode|"。// 返回 4// 当前文本为 "leet|"。// 删除了 4 个字符。// 当前文本为 "leetpractice|"。// 返回 "etpractice"// 当前文本为 "leetpractice|".

2024-08-13 17:25:05 871

原创 LeetCode 1096. 花括号展开 II

如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串。花括号展开的表达式可以看作一个由和x"x"R(x) = {x}"a""a""w""w""{a,b,c}""a{b,c,d}"给出表示基于给定语法规则的表达式expression,返回它所表示的所有字符串组成的有序列表。假如你希望以「集合」的概念了解此题,也可以通过点击 “” 获取详情。输出中出现重复的组合结果。'{''}'','expression提示 1。

2024-08-13 15:00:16 1386

原创 LeetCode 1087. 花括号展开

给定一个表示单词列表的字符串s。单词中的每个字母都有一个或多个选项。"{a,b,c}"例如,如果,第一个字符总是'a',但第二个字符可以是'b'或'c'。原来的列表是。请你,返回所有以这种方式形成的单词。s = "abcd"["abcd"]'{}'','s提示 1提示 2。

2024-08-13 12:25:09 740

原创 LeetCode 439. 三元表达式解析器

439. 三元表达式解析器给定一个表示任意嵌套三元表达式的字符串expression,求值并返回其结果。你可以总是假设给定的表达式是有效的,并且只包含数字,'?',':','T'和'F',其中'T'为真,'F'为假。表达式中的所有数字都是一位数(即在[0,9]范围内)。条件表达式从右到左分组(大多数语言中都是这样),表达式的结果总是为数字'T'或'F'。示例 1:输入: expression = "T?2:3"输出: "2"解释:

2024-08-13 10:53:00 319

原创 LeetCode 736. Lisp 语法解析

给你一个类似 Lisp 语句的字符串表达式expression,求出其计算结果。let"let"v1e1v2e2letexpradd"add"e1e2e1e2mult"mult"e1e2e1e2"add""let""mult"14计算表达式 (add x y), 在检查变量 x 值时,在变量的上下文中由最内层作用域依次向外检查。首先找到 x = 3, 所以此处的 x 值是 3。2let 语句中的赋值运算按顺序处理即可。5第一个 (add x y) 计算结果是 3,并且将此值赋给了 x。

2024-08-12 21:09:50 716

原创 LeetCode 591. 标签验证器

给定一个表示代码片段的字符串,你需要实现一个验证器来解析这段代码,并返回它是否合法。合法的代码片段需要遵守以下的所有规则:代码必须被合法的闭合标签包围。否则,代码是无效的。闭合标签。其中,<TAG_NAME>是起始标签,是结束标签。起始和结束标签中的 TAG_NAME 应当相同。当且仅当 TAG_NAME 和 TAG_CONTENT 都是合法的,闭合标签才是合法的。合法的TAG_NAME仅含有大写字母,长度在范围 [1,9] 之间。否则,该TAG_NAME是不合法的。合法的。

2024-08-12 14:25:50 548

原创 LeetCode 1106. 解析布尔表达式

是计算结果不是true就是false的表达式。't'true'f'subExpr给你一个以字符串形式表述的expression,返回该式的运算结果。题目测试用例所给出的表达式均为有效的布尔表达式,遵循上述约定。false首先,计算 |(f) --> f ,表达式变为 "&(f)"。接着,计算 &(f) --> f ,表达式变为 "f"。最后,返回 false。true计算 (false OR false OR false OR true) ,结果为 true。

2024-08-12 11:21:31 1038

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除