自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

输入: difficulty = [2,4,6,8,10], profit = [10,20,30,40,50], worker = [4,5,6,7]在做了以上的预处理操作之后,我们在确定了工人可以选择的工作范围之后,同时也能得到最大收益。此时的最大收益就是工人能够选择最大难度工作对应的收益。解释: 工人被分配的工作难度是 [4,4,6,6] ,分别获得 [20,20,30,30] 的收益。排序了,所以可以通过二分的方式快速得到某一个工人可以选择工作的范围。按照上述的例子,工人的能力值。

2024-05-17 19:37:25 598

原创 [蓝桥杯 2017 省 AB] 包子凑数

个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有。表示能够被凑出来,反之就是不能被凑出来。我们最终要返回的就是。小明几乎每天早晨都会在一家包子铺吃早餐。当然有时包子大叔无论如何也凑不出顾客想买的数量。如果凑不出的数目有无限多个,输出。每种蒸笼都有非常多笼,可以认为是无限笼。小明想知道一共有多少种数目是包子大叔凑不出来的。(为了保险起见,一般都要多定义几个)。个包子时,大叔就凑不出来了。由于所有元素的总和不会超过。,所以背包的容量直接定义为。个包子时,大叔就会选。,我们就使用完全背包。

2024-04-07 16:20:47 1006

原创 [蓝桥杯 2016 省 B] 交换瓶子

输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。个正整数,用空格分开,表示瓶子目前的排列情况。对于这么简单的情况,显然,至少需要交换。你可以通过编程来解决。个瓶子,交换它们的位置。不在它正确的位置上,即。在其正确的位置上,即。

2024-04-02 22:42:10 946

原创 Leetcode2466. 统计构造好字符串的方案数

解释:好字符串为 “00” ,“11” ,“000” ,“110” 和 “011”。输入:low = 3, high = 3, zero = 1, one = 1。输入:low = 2, high = 3, zero = 1, one = 2。可以这样构造得到:“” -> “0” -> “01” -> “011”。从 “000” 到 “111” 之间所有的二进制字符串都是好字符串。之间(包含上下边界)的字符串,那么这个字符串我们称为。按照定义,我们最终返回的就是。一个可能的好字符串是 “011”。

2024-04-02 20:41:15 893

原创 [蓝桥杯 2022 省 B] 李白打酒加强版

酒壶里有。

2024-04-01 22:15:04 921

原创 [蓝桥杯 2015 省 B] 生命之树

经过 atm 的努力,他已经知道了上帝给每棵树上每个节点上的整数。但是由于 atm 不擅长计算,他不知道怎样有效的求评分。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。为根节点的最大点权和。可能是空集,也就是我们可能一个节点也不选,那说明。里面的元素,且序列中相邻两个点间有一条边相连。由于这是一棵树,所以是不存在环的。输出一行一个数,表示上帝给这棵树的分数。这个最大的和就是上帝给生命之树的评分。个整数,依次表示每个节点的评分。中的点所对应的整数的和尽量大。

2024-03-21 22:11:46 1010

原创 [蓝桥杯 2019 省 A] 修改数组

现在小明要按以下方法将其修改为没有重复整数的数组。的时候,其 祖先节点 不会和之前的重复。如果出现过,则小明会给。仍在之前出现过,小明会持续给。就是我们的答案,它一定大于之前。,数组中有可能有重复出现的整数。时,我们都将其 祖先节点 加。这样设置就可以保证下一次出现。也经过上述修改之后,显然。数组中就没有重复的整数了。数组,请你计算出最终的。个整数 ,依次是最终的。每次我们只需要求得当前。

2024-03-21 21:09:55 968

原创 [蓝桥杯 2020 省 AB3] 乘法表

请注意,乘法表中两个数相乘的顺序必须为样例中所示的顺序,不能随意交换两个乘数。九九乘法表是学习乘法时必须要掌握的。在不同进制数下,需要不同的乘法表。我们可以用 “短除法”,将十进制的数转换成任意。

2024-03-19 21:39:11 973

原创 [蓝桥杯 2022 省 B] 修剪灌木

爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌木,让灌木的高度变为。厘米, 而其余时间不会长高。在第一天的早晨, 所有灌木的高度都是。行, 每行一个整数, 第行表示从左到右第。爱丽丝想知道每棵灌木最高长到多高。爱丽丝要完成一项修剪灌木的工作。灌木每天从早上到傍晩会长高。棵树的最大高度,实际就是。棵树最高能长到多高。

2024-03-19 16:43:44 1057

原创 [蓝桥杯 2015 省 A] 饮料换购

请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的。型饮料,并且可以一直循环下去(但不允许暂借或赊账)。个瓶盖,需要用总的瓶盖数减去消耗掉的瓶盖数,即。乐羊羊饮料厂正在举办一次促销优惠活动。,就要一直循环模拟这个过程,直到换掉所有饮料。瓶饮料,最后他一共能喝到多少瓶饮料。一个整数,表示实际得到的饮料数。瓶饮料,我们直接将其转换为。瓶饮料,所以我们消耗掉了。,表示开始购买的饮料数量。我们可以换到的饮料瓶数为。此时我们直接累加到答案。瓶饮料,所以还要加上。

2024-03-17 22:33:05 797

原创 [蓝桥杯 2020 省 AB1] 走方格

这些点的编号就像二维数组的编号一样,从上到下依次为第。注意,如果行号和列数都是偶数,不能走入这一格中。列,每一个点可以用行号和列号来表示。按照定义,最终返回的就是。在平面上有一些二维的点阵。只能向右或者向下走。行,从左到右依次为第。输出一个整数,表示答案。输入一行包含两个整数。

2024-03-17 22:02:39 1027

原创 [蓝桥杯 2021 省 AB2] 完全平方数

是一个完全平方数,是指它是某一个整数的平方,即存在一个 整数。是完全平方数,那么他一定有两个相同的因子。是相等的,所以他们各自的质因数也相等。是一个完全平方数,将其质因数分解为。,使得它们的乘积是一个完全平方数。我们就可以很容易的得出一个结论,变成完全平方数,我们只要让。输入一行包含一个正整数。输出找到的最小的正整数。,所以我们要将其变为。,请找到最小的正整数。

2024-03-16 23:42:29 1160

原创 [蓝桥杯 2020 省 B2] 平面切分

根绿色的线,然后又来了一根黑色的线,与之前绿色的线共有。我们直接枚举每一条直线,与前面直线的交点即可。请计算这些直线将平面分成了几个部分。个部分,一分为二,即又新增了。行, 每行包含两个整数。

2024-03-07 16:54:27 764

原创 [蓝桥杯 2019 省 B] 等差数列

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中。对于原数列,我们先将其从小到大排序,得到新数列。并不一定是按等差数列中的顺序给出 )。个整数的最短的等差数列有几项?最大,等价于求其最大公约数。个整数,小明想知道包含这。输入的第一行包含一个整数。对于其中任意两项的差值。输出一个整数表示答案。对于所有的这样的差值。对于求出的最大公约数。

2024-03-07 13:39:51 984

原创 [蓝桥杯 2015 省 B] 移动距离

星球居民小区的楼房全是一样的,并且按矩阵样式排列。,需要求出它们之间的最短移动距离。(不能斜线方向移动)当排满一行时,从下一行相邻的楼往反方向排号。我们的问题是:已知了两个楼号。,我们分别求出他们行的位置。行,其所在列的位置就是。行,其所在列的位置就是。比如:当小区排号宽度为。要求输出一个整数,表示。两楼间最短移动距离。,其所在列的位置就是。,其所在列的位置就是。

2024-03-06 23:02:21 1263

原创 [蓝桥杯 2017 省 B] k 倍区间

为了不漏掉从第一个元素开始的。,如果其中一段连续的子序列。的倍数,我们就称这个区间。你能求出数列中总共有多少个。所以我们可以直接使用哈希表。相同的前缀和的个数即可。,我们只需要找到前面与。

2024-03-03 16:31:14 1135

原创 [蓝桥杯 2023 省 A] 平方差

输出一行包含一个整数满足题目给定条件的。的数量 ,最终返回的答案就是。如此我们就可以定义一个函数。范围内的奇数都满足条件。之差一定是偶数,所以。,那么4的倍数个数就为。区间内所有满足条件的。输入一行包含两个整数。

2024-03-03 15:49:26 2591 1

原创 Leetcode.2369 检查数组是否存在有效划分

解释:数组可以划分成子数组 [4,4] 和 [4,5,6]。如果获得的这些子数组中每个都能满足下述条件。输入:nums = [4,4,4,5,6]这是一种有效划分,所以返回 true。输入:nums = [1,1,1,2],你必须将数组划分为一个或多个。只要上述三种情况有一个为真,那么。,即没有元素也是一种有效划分!,则可以称其为数组的一种。解释:该数组不存在有效划分。存在一种有效划分,返回。就是最终要返回的答案。

2024-03-02 15:12:52 744 1

原创 [蓝桥杯 2021 省 AB] 砝码称重

2 = 6 − 4 (天平一边放 6,另一边放 4);请你计算一共可以称出多少种不同的重量?个砝码中选择,是否能够称出重量。输入的第一行包含一个整数。,表示什么也不选也成立。输出一个整数代表答案。是所有法码的重量之和。

2024-02-27 15:26:18 1229

原创 Leetcode.2735 收集巧克力

解释:我们将会按最初的成本收集全部三个类型的巧克力,而不需执行任何操作。因此,收集所有类型的巧克力需要的总成本是 1 + 2 + 3 = 6。接着,我们用成本 5 执行一次操作,巧克力的类型变更为 [1,2,0]。然后,我们用成本 5 执行一次操作,巧克力的类型变更为 [2,0,1]。因此,收集所有类型的巧克力需要的总成本是 (1 + 5 + 1 + 5 + 1) = 13。解释:最开始,巧克力的类型分别是 [0,1,2]。我们可以用成本 1 购买第 1 个类型的巧克力。

2023-12-29 21:28:31 1134

原创 [蓝桥杯 2014 省 A] 波动数列

共一行,包含一个整数,表示满足条件的方案数。是给定的,也就是确定的,于是我们可以通过。栋栋对这种数列很好奇,他想知道长度为。由于这个数很大,请输出方案数除以。这个数列中后一项总是比前一项。而且后一项总是比前一项增加。的整数数列可能有多少种呢?两个满足条件的数列分别是。可以是任意的整数,而。共一行,包含四个整数。我们能够进一步推导出。

2023-12-16 15:24:55 325

原创 Leetcode.2477 到达首都的最少油耗

输入:roads = [[3,1],[3,2],[1,0],[0,4],[0,5],[4,6]], seats = 2。城市里的代表可以选择乘坐所在城市的车,或者乘坐其他城市的车。个节点的树(一个无向、连通、无环图),每个节点表示一个城市,编号从。每个城市里有一个代表,他们都要去首都参加一个会议。辆车,为了用尽可能少的燃料,所以我们直接用。的边,经过的车越多,所消耗的燃料也就越多。由于我们求得是消耗的最少的燃料,假设以点。为根节点的子树上的所有节点都要经过边。开始遍历所有的边,记录总的燃料即可。

2023-12-05 22:15:12 415

原创 Leetcode.330 按要求补齐数组

现在如果我们将 2 添加到 nums 中, 组合变为: [1], [2], [3], [1,3], [2,3], [1,2,3]。其和可以表示数字 1, 2, 3, 4, 5, 6,能够覆盖 [1, 6] 区间里所有的数。根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。输入: nums = [1,5,10], n = 20。输入: nums = [1,2,2], n = 5。输入: nums = [1,3], n = 6。解释: 我们需要添加 [2,4]。

2023-12-03 16:15:37 181

原创 Leetcode.1542 找出最长的超赞子字符串

解释:“213123” 是最长的超赞子字符串,交换其中的字符后,可以得到回文 “231132”解释:“24241” 是最长的超赞子字符串,交换其中的字符后,可以得到回文 “24142”如果一个子串,在进行任意次的字符交换之后,能够变成回文串,相差一位的情况,求最大值。位的二进制数来表示对应数字字符的出现次数。的数字组成的,所以我们直接用一个。输入:s = “3242415”输入:s = “213123”这样的情况,记录到哈希表中。表示子串对应的二进制数。,对应的二进制数就是。输入:s = “00”

2023-11-26 21:19:04 356

原创 Leetcode.1590 使数组和能被 P 整除

解释:我们无法移除任何一个元素使得和被 9 整除,最优方案是移除子数组 [5,2] ,剩余元素为 [6,3],和为 9。我们可以移除子数组 [4] ,剩余元素的和为 6。输入:nums = [1000000000,1000000000,1000000000], p = 3。输入:nums = [3,1,4,2], p = 6。输入:nums = [6,3,5,2], p = 9。输入:nums = [1,2,3], p = 3。输入:nums = [1,2,3], p = 7。,值就是其对应的下标。

2023-11-26 17:08:53 279

原创 Leetcode.974 和可被 K 整除的子数组

输入:nums = [4,5,0,-2,-3,1], k = 5。在实现上,我们使用哈希表来记录前缀和出现的次数。输入: nums = [5], k = 9。为结尾的数组,我们只需要统计前面等于。,也需要统计它的出现次数,即。区间的子数组元素和可以被。,返回其中元素之和可被。整除的(连续、非空)

2023-11-26 16:17:12 227

原创 Leetcode.560 和为 K 的子数组

在实现上,我们使用哈希表来记录前缀和出现的次数。输入:nums = [1,1,1], k = 2。输入:nums = [1,2,3], k = 3。为结尾的数组,我们只需要统计前面等于。,也需要统计它的出现次数,即。区间的子数组元素和为。

2023-11-26 16:02:29 342

原创 Linux下的调试工具——GDB

GDB 是由 GNU 软件系统社区提供的调试工具,同 GCC 配套组成了一套完整的开发环境,GDB 是 Linux 和许多 类Unix系统的标准开发环境。

2023-11-11 13:56:01 300

原创 Makefile

一个工程中的源文件不计其数,其按照类型、功能、模块分别存放在若干个不同的目录中。Makefile文件定义了一系列的来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更为复杂的功能操作,因为Makefile就像一个脚本一样,也可以执行操作系统的命令。Makefile的优点就是 “自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,这样就极大的提高了软件开发的效率。make是一个命令工具,是一个解释Makefile文件中指令的命令工具。

2023-11-08 22:44:14 193

原创 Linux生成动态库

Linux: Windows:使用 得到动态库:3.示例我们先新建如下结构的 demo :以上代码在博客 : Linux生成静态库此时报错显示 找不到 。是因为我们没有指定头文件的路径,在命令后加上 就可以了。将生成的动态库文件 移动到 目录下。当我们生成可执行文件 并执行后,报错了。它显示找不到这个动态库。执行失败的原因需要先了解 加载动态库的流程和原理。在程序启动之后,动态库会被动态加载到内存中,通过 (list dynamic dependencies)命令检查动态库的

2023-11-06 20:20:49 302

原创 洛谷 P1359 租用游艇

游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。按照定义,我们最终返回的答案就是。,保证计算过程中任何时刻数值都不超过。长江游艇俱乐部在长江上设置了。输出计算出的从游艇出租站。第一行中有一个正整数。

2023-11-05 23:06:00 440

原创 Linux生成静态库

GCC 是 GNU 编译器集合(GNU Compiler Collection)的缩写。它是一个开源的编程语言编译器,支持多种编程语言,包括 C、C++、Objective-C、Fortran、Ada 和 Go 等。GCC 最初由理查德·斯托曼(Richard Stallman)创建,它是自由软件基金会(Free Software Foundation)的一部分,遵循 GNU 通用公共许可证(GNU General Public License)。

2023-11-05 09:57:44 221

原创 Leetcode.275 H 指数 II

由于研究者有3篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多于 3 次,所以她的 h 指数是 3。解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 0, 1, 3, 5, 6 次。输入:citations = [0,1,3,5,6]输入:citations = [1,2,100]计算并返回该研究者的。篇论文分别被引用了至少。篇论文被引用的次数,代表“高引用次数”(

2023-10-30 22:18:56 229

原创 Leetcode.274 H 指数

由于研究者有 3 篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多于 3 次,所以她的 h 指数是 3。解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。输入:citations = [3,0,6,1,5]篇论文被引用的次数。计算并返回该研究者的。输入:citations = [1,3,1]代表“高引用次数” ,一名科研人员的。是指他(她)至少发表了。篇论文,并且每篇论文。

2023-10-29 22:19:54 290

原创 Leetcode.1465 切割后面积最大的蛋糕

输入:h = 5, w = 4, horizontalCuts = [1,2,4], verticalCuts = [1,3]输入:h = 5, w = 4, horizontalCuts = [3,1], verticalCuts = [1]解释:上图所示的矩阵蛋糕中,红色线表示水平和竖直方向上的切口。切割蛋糕后,绿色和黄色的两份蛋糕面积最大。解释:上图所示的矩阵蛋糕中,红色线表示水平和竖直方向上的切口。的那份蛋糕,并返回其 面积。用于相乘的这两项是独立的,所以我们可以先分别找到各自最大的一项,即。

2023-10-27 22:58:14 303

原创 Leetcode.2698 求一个整数的惩罚数

能否拆分成若个子字符串,能够满足这些子字符串的值加起来。我们直接回溯枚举每一个子串的分割位置,求出所有可能。,将其转换为字符串的长度为。定义为所有满足以下条件。个,所以时间复杂度为。

2023-10-25 23:01:01 686

原创 IO多路复用技术(二)

如果我们对这个文件描述符做IO操作,从而导致它再次变成未就绪,当这个未就绪的文件描述符再次变成就绪状态,内核会再次进行通知,并且还是只通知一次。但是,这样就会引发另外的一个bug,在非阻塞模式下,循环地将读缓冲区数据读到本地内存中,当缓冲区数据被读完了,调用的。在这种工作模式下,内核会通知调用者那些文件描述符已经就绪了,我们就可以的对这些已经就绪的文件描述符做操作。这样做也是有弊端的,因为套接字操作默认是阻塞的,当读缓冲区数据被读完之后,读操作就阻塞了也就是调用的。当写缓冲区状态可写,写事件只会触发一次;

2023-10-25 21:05:18 252

原创 IO多路复用技术(一)

这块内存中的每一个bit 和 文件描述符表中的每一个文件描述符是一一对应的关系,这样就可以使用最小的存储空间将要表达的意思描述出来了。,那么它对应的文件描述符肯定是就绪的,我们就可以基于这个文件描述符和客户端建立新连接或者通信了。如果内核检测到有就绪的文件描述符就会解除阻塞,然后将这些已经就绪的文件描述符传出去。:文件描述符的集合,内核只检测这个集合中的文件描述符是否有异常状态。:文件描述符的集合,内核只检测这个集合中的文件描述符对应的。:文件描述符的集合,内核只检测这个集合中的文件描述符对应的。

2023-10-23 20:38:54 357

原创 Leetcode.33 搜索旋转排序数组

输入:nums = [4,5,6,7,0,1,2], target = 0。输入:nums = [4,5,6,7,0,1,2], target = 3。输入:nums = [4,5,6,7,0,1,2], target = 3。,则返回它的下标,否则返回。是一个排好序的数组,将其。按升序排列,数组中的值。在预先未知的某个下标。

2023-10-22 09:31:29 202

原创 Leetcode.2316 统计无向图中无法互相到达点对数

输入:n = 7, edges = [[0,2],[0,5],[2,4],[1,6],[5,4]]输入:n = 3, edges = [[0,1],[0,2],[1,2]]解释:所有点都能互相到达,意味着没有点对无法互相到达,所以我们返回 0。的,说明两个点一定是在不同的。同时给你一个二维整数数组。无法到达的点对,假设其分别为。所以我们第一步就要求出所有的。,表示一张 无向图 中有。,那么这两个点一定是。所以我们返回 14。

2023-10-21 20:00:51 345

空空如也

空空如也

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

TA关注的人

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