自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode 3341. 到达最后一个房间的最少时间 I 中等

如果两个房间有一条公共边(可以是水平的也可以是竖直的),那么我们称这两个房间是。房间之间移动需要的时间为 1 秒。需要花费的最少时间为 6 秒。需要花费的最少时间为 3 秒。个房间,它们呈网格状排布。出发,每次可以移动到。有一个地窖,地窖中有。

2025-05-07 16:32:19 211

原创 leetcode 838. 推多米诺 中等

每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。同样地,倒向右边的多米诺骨牌也会推动竖立在其右侧的相邻多米诺骨牌。就这个问题而言,我们会认为一张正在倒下的多米诺骨牌不会对其它正在倒下或已经倒下的多米诺骨牌施加额外的力。张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌向左或向右推。如果一张垂直竖立的多米诺骨牌的两侧同时有多米诺骨牌倒下时,由于受力平衡, 该骨牌仍然保持不变。第一张多米诺骨牌没有给第二张施加额外的力。返回表示最终状态的字符串。

2025-05-02 10:37:02 384

原创 《算法笔记》10.6小节——图算法专题->拓扑排序 问题 C: Legal or Not

【代码】《算法笔记》10.6小节——图算法专题->拓扑排序 问题 C: Legal or Not。

2025-04-30 14:40:24 569

原创 《算法笔记》10.6小节——图算法专题->拓扑排序 问题 B: 确定比赛名次

有N个比赛队(1<=N<=500),编号依次为1,2,3,。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。

2025-04-30 14:26:27 107

原创 《算法笔记》10.6小节——图算法专题->拓扑排序 问题 A: 算法7-12:有向无环图的拓扑排序

以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个整数,如果为1,则表示第i个顶点有指向第j个顶点的有向边,0表示没有i指向j的有向边。在本题中,需要严格的按照题目描述中的算法进行拓扑排序,并在排序的过程中将顶点依次储存下来,直到最终能够判定有向图中不包含回路之后,才能够进行输出。在本题中,读入一个有向图的邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法判断此图是否有回路,如果没有回路则输出拓扑有序的顶点序列。若集合X上的关系R是自反的、反对称的和传递的,则称R是集合X上的偏序关系。

2025-04-30 00:51:35 291

原创 leetcode 1295. 统计位数为偶数的数字 简单

因此只有 12 和 7896 是位数为偶数的数字。7896 是 4 位数字(位数为偶数)345 是 3 位数字(位数为奇数)12 是 2 位数字(位数为偶数)只有 1771 是位数为偶数的数字。2 是 1 位数字(位数为奇数)6 是 1 位数字 位数为奇数)个数位的数字的个数。

2025-04-30 00:22:09 210

原创 《算法笔记》10.5小节——图算法专题->最小生成树 问题 E: Jungle Roads

【代码】《算法笔记》10.5小节——图算法专题->最小生成树 问题 E: Jungle Roads。

2025-04-29 20:26:03 580

原创 《算法笔记》10.5小节——图算法专题->最小生成树 问题 B: Freckles

【代码】《算法笔记》10.5小节——图算法专题->最小生成树 问题 B: Freckles。

2025-04-29 19:38:06 331

原创 《算法笔记》10.5小节——图算法专题->最小生成树 问题 D: 继续畅通工程

每个测试用例的第1行给出村庄数目N ( 1< N < 100 );随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。每个测试用例的输出占一行,输出全省畅通需要的最低成本。

2025-04-29 17:27:19 199

原创 leetcode 2962. 统计最大元素出现至少 K 次的子数组 中等

包含元素 3 至少 2 次的子数组为:[1,3,2,3]、[1,3,2,3,3]、[3,2,3]、[3,2,3,3]、[2,3,3] 和 [3,3]。次的子数组,并返回满足这一条件的子数组的数目。没有子数组包含元素 4 至少 3 次。子数组是数组中的一个连续元素序列。请你统计有多少满足 「

2025-04-29 10:18:37 180

原创 《算法笔记》10.5小节——图算法专题->最小生成树 问题 C: 畅通工程

每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。当N为0时,全部输入结束,相应的结果不要输出。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。对每个测试用例,在1行里输出全省畅通需要的最低成本。

2025-04-28 20:34:45 191

原创 《算法笔记》10.5小节——图算法专题->最小生成树 问题 A: 还是畅通工程

某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。对每个测试用例,在1行里输出最小的公路总长度。当N为0时,输入结束,该用例不被处理。

2025-04-28 11:18:21 152

原创 leetcode 2302. 统计得分小于 K 的子数组数目 困难

注意,子数组 [1,4] 和 [4,3,5] 不符合要求,因为它们的分数分别为 10 和 36,但我们要求子数组的分数严格小于 10。[1,1,1] 分数为 (1 + 1 + 1) * 3 = 9 ,大于 5。- [2,1] 分数为 (2 + 1) * 2 = 6。除了 [1,1,1] 以外每个子数组分数都小于 5。- [2] 分数为 2 * 1 = 2。- [1] 分数为 1 * 1 = 1。- [4] 分数为 4 * 1 = 4。- [5] 分数为 5 * 1 = 5。

2025-04-28 10:34:10 221

原创 leetcode 2799. 统计完全子数组的数目 中等

完全子数组有:[1,3,1,2]、[1,3,1,2,2]、[3,1,2] 和 [3,1,2,2]。数组仅由整数 5 组成,所以任意子数组都满足完全子数组的条件。子数组的总数为 10。如果数组中的某个子数组满足下述条件,则称之为。是数组中的一个连续非空序列。

2025-04-24 17:06:12 301

原创 《算法笔记》10.4小节——图算法专题->最短路径 问题 E: 最短路径问题

输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;n和m为0时输入结束。给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。输出 一行有两个数, 最短距离及其花费。

2025-04-23 14:31:07 140

原创 《算法笔记》10.4小节——图算法专题->最短路径 问题 D: 最短路径

第二行输出最短路径上经过的城市名,如果有多条最短路径,输出字典序最小的那条。若不存在从起点到终点的路径,则输出“can't arrive”。有n个城市m条道路(n<1000, m<10000),每条道路有个长度,请找到从起点s到终点t的最短距离和经过的城市名。接下来m行,每行三个数,分别为两个城市名和距离。每组第一行输入四个数,分别为n,m,s,t。第一行输出起点到终点的最短距离。输入包含多组测试数据。

2025-04-23 14:29:05 176

原创 leetcode 1399. 统计最大组的数目 简单

总共有 4 个组拥有的数字并列最多。的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中。请你统计每个组中的数字数目,并返回数字数目并列最多的组有多少个。总共有 2 个大小为 1 的组 [1],[2]。

2025-04-23 10:51:25 117

原创 《算法笔记》10.4小节——图算法专题->最短路径 问题 C: 最短路径

N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离。N-1行,表示0号城市到其他城市的最短路,如果无法到达,输出-1,数值太大的以MOD 100000 的结果输出。第一行两个正整数N(2<=N<=100)M(M<=500),表示有N个城市,M条道路,接下来M行两个整数,表示相连的两个城市的编号。

2025-04-22 22:04:44 171

原创 1030 Travel Plan (30)

【代码】1030 Travel Plan (30)

2025-04-22 17:17:31 430

原创 leetcode 2145. 统计隐藏数组数目 中等

要求的隐藏数组的数目。如果没有符合要求的隐藏数组,请返回。更正式的表述为:我们将隐藏数组记作。,它们表示隐藏数组中所有数字的值都在。没有符合要求的隐藏数组,所以返回 0。

2025-04-21 08:55:03 211

原创 leetcode 781. 森林中的兔子 中等

因此森林中兔子的最少数量是 5 只:3 只回答的和 2 只没有回答的。之后回答了 "2" 的兔子不会是红色,否则他们的回答会相互矛盾。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。两只回答了 "1" 的兔子可能有相同的颜色,设为红色。森林中有未知数量的兔子。设回答了 "2" 的兔子为蓝色。,将答案收集到一个整数数组。,返回森林中兔子的最少数量。

2025-04-20 22:54:33 159

原创 leetcode 2563. 统计公平数对的数目 中等

共计 6 个公平数对:(0,3)、(0,4)、(0,5)、(1,3)、(1,4) 和 (1,5)。数对满足以下情况,则认为它是一个。只有单个公平数对:(2,3)。

2025-04-19 12:10:09 371

原创 leetcode 2364. 统计坏数对的数目 中等

数对 (0, 2) 是坏数对,因为 2 - 0!= 3 - 4, 2!数对 (0, 3) 是坏数对,因为 3 - 0!= 3 - 4, 3!数对 (1, 2) 是坏数对,因为 2 - 1!= 3 - 1, 1!数对 (2, 3) 是坏数对,因为 3 - 2!= 3 - 3, 1!数对 (0, 1) 是坏数对,因为 1 - 0!总共有 5 个坏数对,所以我们返回 5。

2025-04-18 12:18:23 197

原创 1003 Emergency(25)

【代码】1003 Emergency(25)

2025-04-14 21:52:35 603

原创 leetcode 1534. 统计好三元组 简单

一共有 4 个好三元组:[(3,0,1), (3,0,1), (3,1,1), (0,1,1)]。请你统计其中好三元组的数量。满足下列全部条件,则认为它是一个。不存在满足所有条件的三元组。

2025-04-14 00:12:57 131

原创 leetcode 1922. 统计好数字的数目 中等

长度为 1 的好数字包括 "0","2","4","6","8"。组成的字符串,且可能包含前导 0。由于答案可能会很大,请你将它对。且为好数字的数字字符串。我们称一个数字字符串是。

2025-04-13 23:14:28 314

原创 leetcode 3375. 使数组的值全部为 K 的最少操作次数 简单

依次选择合法整数 7 ,5 ,3 和 1 ,将数组全部变为 1。依次选择合法整数 4 和 2 ,将数组全部变为 2。的数都等于 10 ,但是 5 不是。如果无法将所有元素都变。没法将所有值变为 2。,那么返回 -1。

2025-04-09 15:16:07 345

原创 leetcode 3396. 使数组元素互不相同所需的最少操作次数 简单

空数组也视作为数组元素互不相同。返回使数组元素互不相同所需的。数组中的元素已经互不相同,因此不需要进行任何操作,答案是 0。,你需要确保数组中的元素。

2025-04-08 12:09:45 148

原创 1034. Head of a Gang (30)

【代码】1034. Head of a Gang (30)

2025-04-08 00:38:28 915

原创 1076 Forwards on Weibo (30)

【代码】1076 Forwards on Weibo (30)

2025-04-07 23:14:37 545

原创 《算法笔记》10.3小节——图算法专题->图的遍历 问题 B: 连通图

每组数据的第一行是两个整数 n 和 m(0<=n<=1000)。n 表示图的顶点数目,m 表示图中边的数目。随后有 m 行数据,每行有两个值 x 和 y(0<x, y <=n),表示顶点 x 和 y 相连,顶点的编号从 1 开始计算。分析:和问题A差不多的思路,用并查集检查是否只有一个集合。当然也可以用BFS或者DFS检查是否只有一个连通分量。对于每组输入数据,如果所有顶点都是连通的,输出"YES",否则输出"NO"。给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。

2025-04-07 21:32:54 225

原创 《算法笔记》10.3小节——图算法专题->图的遍历 问题 A: 第一题

每个输入文件包含若干行,每行两个整数i,j,表示节点i和j之间存在一条边。该题的目的是要你统计图的连通分支数。输出每个图的联通分支数。

2025-04-07 19:59:53 244

原创 leetcode 416. 分割等和子集 中等

如果 j≥nums[i],即当前需要达到的选取数据之和 j 是大于等于当前要选择的数 nums[i] 时,可以选取也可以不选取,这两种情况只要有一个为 true,就说明在数组的 [0,i] 下标范围内,存在一个选取方案,使得选取的所有数之和达到 j,此时 dp[i][j]=true。如果 j<nums[i],则在选取的数字的和等于 j 的情况下无法选取当前的数字 nums[i],因此有 dp[i][j]=dp[i−1][j]。对于 i>0 且 j>0 的情况,如何确定 dp[i][j] 的值?

2025-04-07 17:24:57 396

原创 leetcode 368. 最大整除子集 中等

如果存在多个有效解子集,返回其中任何一个均可。,请你找出并返回其中最大的整除子集。[1,3] 也会被视为正确答案。

2025-04-06 15:10:47 391

原创 《算法笔记》9.8小节——图算法专题->哈夫曼树 问题 E: 合并果子-NOIP2004TGT2

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。例如有3种果子,数目依次为1,2,9。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。第二行包含n个整数,用空格分隔,第i个整数ai(1<=ai<=20000)是第i种果子的数目。

2025-04-05 03:49:23 144

原创 《算法笔记》9.8小节——图算法专题->哈夫曼树 问题 D: Haffman编码

现在给你一串字符以及它们所对应的权值,让你构造哈弗曼树,从而确定每个字符的哈弗曼编码。接下来n行,每行有一个字符ch和一个整数weight,表示字符ch所对应的权值,中间用空格隔开。对于每组测试数据,按照输入顺序输出相应的字符以及它们的哈弗曼编码结果,具体格式见样例。4.所有字符为ASCII码表上32-96之间的字符(即“ ”到“`”之间的字符)。2.若两个字符权值相同,则ASCII码值小的字符为左孩子,大的为右孩子;3.创建的新节点所代表的字符与它的做孩子的字符相同;输入包含多组数据(不超过100组)

2025-04-05 03:32:42 187

原创 《算法笔记》9.8小节——图算法专题->哈夫曼树 问题 C: 哈夫曼树

哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。

2025-04-05 03:26:46 214

原创 leetcode 1863. 找出所有子集的异或总和再求和 简单

[5,1,6] 的异或总和为 5 XOR 1 XOR 6 = 2。- [1,3] 的异或总和为 1 XOR 3 = 2。- [5,1] 的异或总和为 5 XOR 1 = 4。- [5,6] 的异或总和为 5 XOR 6 = 3。- [1,6] 的异或总和为 1 XOR 6 = 7。每个子集的全部异或总和值之和为 480。- [1] 的异或总和为 1。- [3] 的异或总和为 3。- [5] 的异或总和为 5。- [1] 的异或总和为 1。- [6] 的异或总和为 6。

2025-04-05 03:19:30 275

原创 《算法笔记》9.8小节——图算法专题->哈夫曼树 问题 B: 算法6-13:自顶向下的赫夫曼编码

在本题中,我们将要讨论的是自顶向下的赫夫曼编码算法。从根出发,遍历整棵赫夫曼树从而求得各个叶子结点所表示的字符串。输入的第一行包含一个正整数n,表示共有n个字符需要编码。其中n不超过100。第二行中有n个用空格隔开的正整数,分别表示n个字符的权值。共n行,每行一个字符串,表示对应字符的赫夫曼编码。

2025-04-05 03:04:09 216

原创 《算法笔记》9.8小节——图算法专题->哈夫曼树 问题 A: 算法6-12:自底向上的赫夫曼编码

在实际应用中,由于总是希望被传送的内容总长尽可能的短,如果对每个字符设计长度不等的编码,且让内容中出现次数较多的字符采用尽可能短的编码,则整个内容的总长便可以减少。另外,需要保证任何一个字符的编码都不是另一个字符的编码前缀,这种编码成为前缀编码。在本题中,读入n个字符所对应的权值,生成赫夫曼编码,并依次输出计算出的每一个赫夫曼编码。输入的第一行包含一个正整数n,表示共有n个字符需要编码。第二行中有n个用空格隔开的正整数,分别表示n个字符的权值。共n行,每行一个字符串,表示对应字符的赫夫曼编码。

2025-04-05 02:48:25 181

空空如也

空空如也

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

TA关注的人

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