自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Leetcode】2226. Maximum Candies Allocated to K Children

【代码】【Leetcode】2226. Maximum Candies Allocated to K Children。

2024-09-18 16:48:36 144

原创 【ACWing】3699. 树的高度

树是一种特殊的图结构,有根树是一个有固定根的树。现在给定一棵有根树,编程求出树中所有节点到指定的根节点最远距离。输出距离根节点最远的点到根的距离。BFS记录一下层数,答案就是层数减。,表示数的顶点数和根节点的编号。的节点间有一无向条边。

2024-09-03 00:55:55 654

原创 【ACWing】3228. 俄罗斯方块

个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板块中某一个方块的下边缘与方格图上的方块上边缘重合或者达到下边界时,板块不再移动,如果此时方格图的某一行全放满了方块,则该行被消除并得分。具体的,给定一个初始的方格图,以及一个板块的形状和它下落的初始位置,你要给出最终的方格图。之间的整数,表示板块图案最左边开始的时候是在方格图的哪一列中。,则它的左边和实际所表示的板块的左边是不一致的(见样例)。个方块是四连通的,即给定的板块是俄罗斯方块的标准板块)。,则表示初始的时候有方块。

2024-08-28 00:57:31 1065

原创 【Leetcode】3186. Maximum Total Damage With Spell Casting

可以先汇总一下每个数出现次数,然后用动态规划求解。问选出数的最大总和是多少。,可以在其中选数,但是如果。

2024-08-24 07:10:34 564

原创 【Leetcode】1997. First Day Where You Have Been in All the Rooms

问访问完所有房间至少需要多少多少步。可以证明所有房间都会访问完。,中间的房间一定都要走过。步,要么是回头,所以容易知道如果要从。如果是偶数次,则下一步会访问。号房间,那么下一步你会访问。如果你是第奇数次访问。因为每一步要么是向右走。号房间,再给定一个长。

2024-08-19 11:36:34 948

原创 【Leetcode】2334. Subarray With Elements Greater Than Varying Threshold

如果存在,返回任意一个满足条件的子数组的长度;的区间就行了,可以使用单调栈。所以我们只需要枚举形如。的子数组使得该子数组每个数都大于。

2024-08-19 11:06:55 931

原创 【Leetcode】2661. First Completely Painted Row or Column

这个数涂色,问第一次将某一行或者列涂满的最小的。

2024-08-19 06:50:15 612

原创 【Leetcode】910. Smallest Range II(配数学证明)

的话,最大值不会变,而最小值有可能变大,所以极差不会变大。直接枚举分界线即可。假设已经从小到大排好序。然后,可以证明对于任意使得极差最小的方案,都可以将其调整为,有个分界线,之前都是。,要使得整个数组的极差最小,问最小的极差是多少。这个数组的最小值和最大值很容易求。,在这种方案下,最大值一定是。,强制让每一项减或者加。

2024-08-19 06:36:15 722

原创 【Leetcode】901. Online Stock Span

,并返回上一个比它大的整数和它之间的下标之差。构造一个类,这个类每次接受一个整数(范围。,每次操作时空复杂度。

2024-08-18 09:06:00 198

原创 【Leetcode】2533. Number of Good Binary Strings

且左右无法继续延伸了的子串)的长度都是。的满足条件的串有多少个,对于任何长度为。的满足条件的串可以分为两类,一类以。,剩余的串肯定也满足条件,个数是。结尾,如果如此,那么去掉结尾的。子串(同上)的长度都是。

2024-08-18 06:57:59 615

原创 【Leetcode】2918. Minimum Equal Sum of Two Arrays After Replacing Zeros

变为任意正整数,使得两个数组的和相等。问这个最小的相等的和是多少。由于必须变成正整数,所以最终答案一定不小于。的数组和无法再变大了,此时无解;先求数组各自的和和各自有多少个。的数变得再大一些即可,返回。给定两个非负整数数组。

2024-08-18 06:33:30 755

原创 【Leetcode】2361. Minimum Costs Using the Train Line

是从任意点由慢线切换到快线所需要的花费。从快线切换到慢线是不需要花费的。我们把每个点拆为两个点,一个是慢线上的点,一个是快线上的点。这么多点,这两条线一条叫慢线,一条叫快线。点,问他到各个点的最小花费。分别是要到达慢线和快线。表示如果走慢线的话从。表示如果走快线的话从。

2024-08-17 15:08:41 533

原创 【Leetcode】2771. Longest Non-decreasing Subarray From Two Arrays

的最长非降子数组最长,问这个最长的长度。中最长非降子数组的长度,类似的,设。中最长非降子数组的长度。

2024-08-17 13:56:24 988

原创 【Leetcode】1515. Best Position for a Service Centre

单元凸函数求最小值可以用三分法,而二维凸函数求最小值可以用三分套三分的方法。

2024-08-15 22:29:49 579

原创 【Leetcode】1513. Number of Substrings With Only 1s

【代码】【Leetcode】1513. Number of Substrings With Only 1s。

2024-08-15 14:33:25 369

原创 【Leetcode】1510. Stone Game IV

个石子,两个人玩游戏,每个人可以拿走正的完全平方数个石子,恰好拿完的人获胜。个石子的情况下是否必胜,初始条件。表示先手面对的局面是。

2024-08-15 12:56:12 711

原创 【Leetcode】1509. Minimum Difference Between Largest and Smallest Value in Three Moves

最优方案肯定是变两端的值,可以直接暴力枚举左右两端各变多少个数。,允许每一步将其中任意数变成任意数,允许最多。次操作,问得到的新数组的极差最小是多少。

2024-08-15 12:43:48 392

原创 【Leetcode】1508. Range Sum of Sorted Subarray Sums

的最大的数,而这个可以用二分答案来做。将这些和从小到大排序,问排序之后位于第。,如果将其所有子数组和求出来,则一共有。个的那些和的总和是多少。设子数组的和组成的数组是。数组上用双指针来求。,所以我们只需要会求。这一步,可以在前缀和。的所有子段和的和就是。

2024-08-15 12:30:59 607

原创 【Leetcode】2702. Minimum Operations to Make Numbers Non-positive

我们只需要验证哪些数需要额外的机会,并且总的额外的机会个数是否小于等于。次操作是否能达到目的。我们可以将一次操作理解为,先将所有数都减去。问至少多少次操作可以使得整个数组每个数都非正。每一次操作允许将某个位置的数减。次操作就可以理解为,每个数先减去。,同时再挑一个数减去。

2024-08-14 16:55:06 731

原创 【Leetcode】3225. Maximum Score From Grid Operations

允许在任意多列从上到下连续的格子涂黑色,涂完颜色之后,如果一个白色格子(即未涂色的格子)在横的方向与黑格子相邻,则该白色格子可以计入得分。对于所有的涂色方案,问最大总分是多少。的格子是否要计入答案,因为这一段格子可能是由其左边的那一列贡献,也可能由右边的那一列贡献。列的下面的格子分数的情况下的最大得分(即不计入贡献)。个格子的情况下,能得到的最大得分。列的下面的格子分数之后的最大得分(即计入。之间的白色格子的分数就行了;列白色格子的分数贡献);列涂了多少个格子,假设涂。个格子的情况下,且计入了。

2024-08-14 08:24:44 1030

原创 【Leetcode】2366. Minimum Replacements to Sort the Array(配数学证明)

(对于新产生的数也可以接着替换)。问最少要做多少次操作可以使得整个数组是非严格递增的。变成若干更小的数,这个时候原方案肯定比这个最优方案更优(因为它限制少)。了,我们才需要考虑做操作。如果不然,设某另一个最优方案里操作的最右边的数不是。为了使得后面继续拆分限制尽量少,我们希望。又必须被操作,所以这个最优方案操作的数就是。我们从后向前考虑数组,如果第一次发现。替换为两个数,且这两个数之和要等于。且这个值是能取到的,而直接让。,每一步允许将其中某个数。尽可能小就能同时达到。

2024-08-14 02:53:05 593

原创 【Leetcode】2365. Task Scheduler II

个任务,并且任务要按照顺序做。问最少要多少天可以使得所有任务都做完。显然每天如果能做任务,就要尽量做任务。,表示做完某类任务之后要休息。天才能再做相同任务。天就能做完并且每天只能做。

2024-08-14 01:58:34 146

原创 【Leetcode】2364. Count Number of Bad Pairs

在哈希表里出现的次数。的数对个数,可以开一个哈希表存。来讲满足条件的数对个数就是。,问数组中有多少个数对。

2024-08-14 01:43:09 271

原创 【Leetcode】2363. Merge Similar Items

个,要求汇总每个物品总共有多少个,并且按照物品的。给定两个数组,里面的元素都是。

2024-08-14 01:34:52 135

原创 【Leetcode】2996. Smallest Missing Integer Greater Than Sequential Prefix Sum

对于其最长的连续数字的前缀的和。,找到最小的大于等于。

2024-08-12 10:12:00 135

原创 【Leetcode】2508. Add Edges to Make Degrees of All Nodes Even

先统计一下每个点的度数,再找出度为奇数的点。如果没有度为奇数的点,则图本身已经满足条件。如果度为奇数的点有两个,继续讨论,如果这两个点之间没有边,直接连起来就行,否则看一下是否存在第。你可以加最多两条边,同时保证不能出现平行边和环(图一开始也是没有环和平行边的)。问是否能让图里每个点的度都变为偶数。个点和它们都没有边,如果有,各自向它连一条边即可;个,看一下能不能每两个之间连一条边;个点的无向图,每个点编号。

2024-08-11 05:35:13 276

原创 【Leetcode】2285. Maximum Total Importance of Roads

的一个数字,每个数字只能分配一次。点之间有无向边,每条边的权值是其连接的两个点的分配数字之和。问怎么分配数字能使得所有边的总权值之和最大,返回最大的那个和。先统计一下每个点连了多少条边,显然连最多边的点分配的数字应该最大。,每个点可以分配一个。

2024-08-11 02:42:21 296

原创 【Leetcode】1342. Number of Steps to Reduce a Number to Zero

【代码】【Leetcode】1342. Number of Steps to Reduce a Number to Zero。

2024-08-11 02:24:54 375

原创 【Leetcode】1566. Detect Pattern of Length M Repeated K or More Times

次连续出现的相同的子数组。反过来也是对的,如果计数器从。,那么遍历的地方就存在。次,如果有一个计数器。

2024-08-11 00:33:16 828

原创 【Leetcode】2246. Longest Path With Different Adjacent Characters

显然我们需要分治的时候DFS返回从儿子向下能走的最长路径,关于点。问相邻点对应字母不同的路径中最长的那个路径的长度。,先递归求解其所有儿子子树的解,然后考虑经过点。的那些儿子中的两个的最长路径即可。是树根,每个点的父亲由。个点的树,点的标号是。

2024-08-10 13:09:01 279

原创 【Leetcode】2850. Minimum Moves to Spread Stones Over Grid

原问题等价于问把每个人的账都平掉,至少需要多少操作)。的位置挪数,至少需要多少步。这可以直接暴搜来做(有点类似于。那么问题转化为,如果我们只考虑从大于。,那么继续上面的讨论。并且将这个位置四个方向相邻的位置加。可以证明任意方案,如果其中有挪。的操作,那么总可以转化为没有挪。个人在这个位置,每个人手里有。,允许将某个正整数的位置减。,那么这两步等价于直接将填。问将矩阵每个位置都变成。的话,会造成该位置变为。,那么总有一步是填这个。时间复杂度指数级,空间。至少需要多少步操作。

2024-07-29 23:25:35 379

原创 【Leetcode】3071. Minimum Operations to Write the Letter Y on a Grid

的部分和之外的部分各自变为相同的值,但是。和之外的部分值不同。,每次操作可以将任意位置的数改为。任意其一,要求将方阵里的形如。的方阵,里面的数只有。

2024-07-23 00:19:06 510

原创 【Leetcode】233. Number of Digit One

的每一位求出来然后从左到右排列。,那么除了上面那个方案之外,左边是可以取。对每一位求个总和即可。这些正整数中各个位总共有多少个。这一位,有多少个数能取。,那么其左边的方案数是。,那么其左边的方案是。的,而此时右边可以取。

2024-07-22 08:03:18 1010

原创 【Leetcode】2127. Maximum Employees to Be Invited to a Meeting

我们定义一个环上的点的“粉丝团“这样的概念。容易知道对于任意一个环上的点,它可能有粉丝团,也可能没有,即使有,也可能有多个。这个图事实上可以分解为若干个不相交的子图,使得每个子图要么是环,要么是环加上环上每个点的所有粉丝团。号人喜欢的人的编号(他不能喜欢自己)。有一个圆桌,想安排若干人上桌,每个人必须要和自己喜欢的人坐一起。的环,他们只能单独上桌,因为他们之中只要有一个人上桌,那每个人的左右两边的人都确定了。的环,这些环可以都上桌,并且带上两个人各自的人数最多的粉丝团上桌。之外的所有点,就称为点。

2024-07-18 03:22:38 841

原创 【Leetcode】2537. Count the Number of Good Subarrays

从而最终的答案即为。

2024-07-17 11:28:39 590

原创 【Leetcode】2444. Count Subarrays With Fixed Bounds

为右端点的数组满足条件的有多少个,设。这两个数都在区间里就行了。向左最远能延伸到的地方,而此时。的范围长度求和即可。满足条件,我们其实是在考虑。的,从而我们只需要保证。的最小值和最大值恰好是。

2024-07-15 21:14:50 696

原创 【Leetcode】1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit

当然也可以用一个BBST来维护区间信息。这里维护区间每个数出现的次数。我们用两个单调双端队列维护。的最大值和最小值的下标,从而也就能得到。的时候,收缩左端点。,求最长的极差小于等于。的子数组,返回其长度。,再给定一个非负整数。的极差不会变小,从而。

2024-07-15 20:47:32 707

原创 【ACWing】1507. 旅行计划

城市之间都能相互连通。每条高速公路的长度和走该条公路的花费都是已知的,高速公路都是双向的。现在要从地图中的某个城市前往另一个城市。请你确定最短路径,当最短路径不唯一时,请你选取花费最小的路径(保证唯一)。共一行,首先输出从起点城市到终点城市的最短路径(花费最少的)经过的所有城市,然后输出最短路径的距离以及最小的花费。Dijkstra算法。为了输出路径,可以从终点到起点搜最短路。,分别表示城市数量,公路数量,起点城市编号,终点城市编号。之间存在一条公路,长度为。行,每行包含四个整数。

2024-06-30 00:38:55 650

原创 【ACWing】3083. 矩阵距离

请求出与它距离最近且值为。第一行为两个整数,分别代表。的元素就是它自己,距离为。时,与它距离最近且值为。多源BFS,从所有的。

2024-06-25 03:07:58 1089

原创 【ACWing】3472. 八皇后

会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。先用DFS暴力求解所有的解,应答询问的时候直接查表即可。皇后的摆放方法,定义一个皇后串。串的比较是这样的:皇后串。输出应是一个正整数,是对应于。行,每行输出对应一个输入。个皇后放在棋盘上(有。

2024-06-25 02:18:37 691

空空如也

空空如也

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

TA关注的人

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