自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每日算法刷题Day32 6.15:leetcode枚举技巧7道题,用时1h10min

2.满足条件i和j的宽高比相同,可以跟3. 1512.好数对的数目一样的做法,只不过键为double类型,但是数据再大就会出错,要用。返回你必须拿起的最小连续卡牌数,以使在拿起的卡牌中有一对匹配的卡牌。如果无法得到一对匹配的卡牌,返回。返回你可以从这笔交易中获取的最大利润。2."如果两张卡牌的值相同,则认为这一对卡牌 匹配“,即满足条件。,找出自身与对应的负数都在数组中存在的最大正整数。如果两张卡牌的值相同,则认为这一对卡牌。)的宽高比相同,则认为这两个矩形。,如果不存在这样的整数,返回。

2025-06-15 20:42:27 789

原创 每日算法刷题Day31 6.14:leetcode二分答案2道题,结束二分答案,开始枚举技巧,用时1h10min

矩阵,但是发现假设已经取完矩阵前两行的数组和,再考虑第3行时,只要考虑前两行数组前K个值即可(因为后面的不可能是最终的K个最小数组和),所以问题就转化为得到前面i-1行的最小K个数组和数组,然后第i行考虑进来,最终再得到一个最小K个数组和数组,实现行的压缩。2.依旧转化为373.查找和最小的K对数字,只不过nums2是倒序的arr,且多个条件i+j!2.转化为373.查找和最小的K对数字,利用最小堆,373是从两个数组找前K个,而此题是。3.初始数组为只有0元素的数组和第一行(表示取第一行前K个元素)

2025-06-14 22:41:11 434

原创 每日算法刷题Day30 6.13:leetcode二分答案2道题,用时1h10min

接下来考虑入堆,目前元素为(i,j),下一个入堆元素为(i+1,j)或者(i,j+1),但是会出现一个问题,(i+1,j)入堆,然后(i+1,j+1)入堆,而如果(i,j+1)入堆,然后(i+1,j+1)又会入堆一次,2.一开始想的是二分答案和最小的第k个和,但是check函数里面双指针不好写判断,所以学习优先队列最小堆写法。2.此题是4. 878.第N个神奇数字的进阶版,从两个数的容斥原理变成三个数的容斥原理,同理即可。,请你设计一个算法来找出第。,其中第一个元素来自。

2025-06-13 22:06:32 466

原创 每日算法刷题Day29 6.12:leetcode二分答案4道题,用时1h10min

2.转化为二分查找x,使得矩阵中<=x的数至少有k个,因为矩阵每行升序,所以一旦有一个>x,则直接continue跳到下一行。满足条件的数的个数>=n,想到用容斥原理优化了,但是二分右边界写的INT_MAX,太大了,应该直接写。,其中第 1 小、第 2 小和第 3 小的数都是 1,第 4 小和第 5 小的数都是 2。(1)将寻找第K小/大元素转变为二分答案一个值x,让<=x/>=x的数至少有k个。2.化简为二分答案x,满足<=x的数至少为k个,而对应第i行,个数就是。的乘法表中,找出并返回第。

2025-06-12 23:41:52 843

原创 每日算法刷题Day28 6.10:leetcode二分答案2道题,用时1h

去找第一个满足条件的x,而简单逻辑就是遍历x,若满足条件就直接考虑他即可,同时记录一个pre,本质就是看数满不满足条件,而这个条件要与前一个值相关联,故需记录。1.在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。2.跟1. 3281.范围内整数的最大得分一样,只不过不再是整数在一个区间里了,而是整数一定是。中一个确定的数,就二分答案甜蜜度,以当前甜蜜度为步长去找糖果,若。类糖果的价格,另给你一个正整数。3.我的代码写复杂了,我的逻辑是以。

2025-06-11 00:29:43 286

原创 每日算法刷题Day27 6.9:leetcode二分答案2道题,用时1h20min

3.首先对区间左端点排序(经验),利用贪心策略查找,因为题目只要存在组整数,让两两绝对值之差都大于score即可,所以要让两两绝对值之差尽可能地大,所以一开始选左端点。2.这题的条件不是很明确,但二分答案是可能得分,即最小绝对差,所以去找两两之间的绝对差,如果都大于等于选取的score,说明score找小了,3.二分答案为最多一天耗时,而该值越小,越不满足条件,所以存在一个最小值,而一旦一个值满足条件,大于它的值也一定满足条件。就直接贪心即可,无需再考虑其他的,我原来在思考贪心不能保证最优解,没有必要。

2025-06-09 22:08:44 1091

原创 每日算法刷题Day26 6.8:leetcode二分答案1道题,用时1h(第2道题太难,不应该写的,现在规定不是困难不写,而是2200分以下第一轮都先不写,目前先熟悉所有题型,加快速度)

你需要从这个图中删除一些边(也可能。

2025-06-08 23:19:09 169

原创 每日算法刷题Day25 6.7:leetcode二分答案3道题,用时1h40min(遇到两道动态规划和贪心时间较长)

3.我的思路是dfs取搜索,但是会存在重复子问题(比如连续两个房屋都可以偷,但他们后面偷的房屋都一样,连续的第2个就要再求解重复子问题了),会超时,所以要用动态规划来消除冗余,解决重复子问题。2.单调性检验:二分答案的是体力消耗值(最大高度差绝对值),如果它越小,越不容易满足条件,所以有个最小值,而一旦一个值满足条件,大于它的值一定满足条件,符合单调性。2.单调性检验:二分答案是偷窃能力,偷窃能力越小,越不容易偷到k间房屋,所以存在一个最小值,而一旦一个值满足条件,大于它的值肯定满足条件,符合单调性。

2025-06-07 20:50:26 1031

原创 每日算法刷题Day24 6.6:leetcode二分答案2道题,用时1h(下次计时20min没写出来直接看题解,节省时间)

种产品,每种产品的数目用一个下标从。种产品,每种产品的数目用一个下标从。你可以进行如下操作至多。1.给你一个整数数组。

2025-06-06 22:26:36 996

原创 每日算法刷题Day23 6.5:leetcode二分答案3道题,用时1h40min(有点慢)

3007. 价值和小于等于 K 的最大数字 - 力扣(LeetCode)1.给你一个整数 和一个整数 。整数 的价值是它的二进制表示中在 ,, 等位置处 设置位 的数目(从最低有效位开始)。 的 累加价值 是从 到 的数字的 总 价值。如果 的累加价值小于或等于 则被认为是 廉价 的。请你返回 最大 的廉价数字。2.单调性检验:廉价数字越大,累加价值越容易超过k,所以存在一个最大廉价数字,若此时廉价数字符合条件,小于它的廉价数字也一定符合条件3.我的想法是可以用二分,但是对于每个mid还

2025-06-05 21:10:24 898

原创 每日算法刷题Day22 6.4:leetcode二分答案3道题,用时1h30min

2.单调性检验:k越大,越不可能满足条件,所以存在一个最大的k,而如果此时的k满足条件,说明删除这k个元素p依旧是子序列,而删除小于k个元素不影响p是子序列,所以满足单调性。是一个由原字符串生成的新字符串,生成过程中可能会移除原字符串中的一些字符(也可能不移除)但不改变剩余字符之间的相对顺序。3.单调性检验:合金数越大,越不能满足条件,而一旦一个合金数满足条件,小于该值的合金也一定满足条件,满足单调性。(1)left:因为是每台机器取最多,所以left可以直接从当前合金最大值res开始,避免很多判断。

2025-06-04 22:23:12 1323

原创 每日算法刷题Day21 6.3:leetcode二分答案2道题,用时1h20min(有点慢)

3.我的思想:用长度mid提取子串t,然后把用个函数判断是不是特殊字符串,函数逻辑是用unordered_set来判断,如果子串是特殊字符串,再用unordered_map来记录次数,判断是否大于3,但会。因为题目说明特殊字符串出现至少三次,那么就当三次来算,那么有哪些方法能够提取出三个特殊子串呢?2.单调性检验:长度越大,越不可能出现至少三次,而一旦满足条件,长度更小的一定满足条件。,从而得到每种字符各自连续的子串长度,然后先遍历每种字符,的长度,如果不存在出现至少三次的特殊子字符串,则返回。

2025-06-03 21:48:23 763

原创 每日算法刷题计划Day20 6.2:leetcode二分答案3道题,用时1h20min

前面的「求最小」和二分查找求「排序数组中某元素的第一个位置」是类似的,按照红蓝染色法,左边是不满足要求的(红色),右边则是满足要求的(蓝色)。「求最大」的题目则相反,左边是满足要求的(蓝色),右边是不满足要求的(红色)。3.我的思想:是找到第一个大于mid的引用次数,然后判断文章数,但这样要花费时间找第一个大于mid的引用次数的下标。2.单调性检验:糖果数目越大,越不能均分,所以存在一个最大糖果数目,且小于该糖果数目的值也一定满足条件,满足单调性。在练习时,请注意「求最小」和「求最大」的二分写法上的。

2025-06-02 23:31:07 1067

原创 每日算法刷题Day19 5.31:leetcode二分答案3道题,用时1h

你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。在加热器的加热半径范围内的每个房屋都可以获得供暖。2.单调性检验:加热半径越小,越可能不能覆盖所有房屋,不满足条件,所以存在一个最小加热半径。,表示总共需要修理的汽车数目。请你返回**修理所有汽车(条件) **3.单调性检验,时间越少,越不可能修理所有汽车,所以存在一个最少时间。2.单调性检验:天数越少,越不能摘到m束花,所以存在一个最少天数。的位置,请你找出并返回可以覆盖所有房屋的最小加热半径。,表示一些机械工的 能力值。1.给你一个整数数组。

2025-05-31 20:48:27 552

原创 每日算法刷题计划Day18 5.30:leetcode二分答案4道题,用时1h20min

根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。2.单调性分析:运载能力为x,x越小,所需天数越大,可能会不满足在days天内的条件,所以存在一个最低运载能力。3.边界确定:左边界为包裹最大值,确保能运输包裹,右边界为和,保证一定满足条件(只需要一天)t越小,左式越小,越可能不满足条件,所以存在一个最小的时间t,满足单调性。,k越小,左式越大,越可能不满足条件,符合单调性,存在一个最小的k。完成多趟旅途,也就是说,一辆公交车当前旅途完成后,可以。将传送带上的所有包裹送达的船的。

2025-05-30 16:50:14 914

原创 每日算法刷题计划Day17 5.29:leetcode复习滑动窗口+二分搜索5道题+二分答案1道题,用时1h20min

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)

2025-05-29 09:57:21 987

原创 每日算法刷题Day16 5.26:leetcode不定长滑动窗口求子数组个数越短越合法2道题+恰好型3道题,用时1h20min

个辅音字母”是恰好型,也转化为两个越长越合法型相减,所以while循环里面可以写两个条件相与,才是符合条件的窗口。朵,那么我们认为这束插花是 「美观的」。请返回在这一排鲜花中,共有多少种可选择的区间,使得插花是「美观的」。在你选择的插花中,如果每一品种的鲜花数量都不超过。2.转化为和>=goal的子数组数量减去>=goal+1的子数组数量,转化为越长越合法型。(窗口条件),我们就认为这个子数组是「优美子数组」。的 子字符串 中,每个元音字母(个辅音字母的子字符串的总数。(窗口条件)的子字符串的。

2025-05-26 20:04:17 955

原创 每日算法刷题计划Day15 5.25:leetcode不定长滑动窗口求子数组个数越短越合法3道题,用时1h

在 right 时,左端点在 left,left+1,left+2,…,right 的所有子数组都是满足要求的,这一共有 right−left+1 个。由于子数组越短,越能满足题目要求,所以除了。,请你返回子数组内所有元素的乘积严格小于。(1)越长越合法right元素进入窗口导致。共right-left+1个左端点满足条件。的一个子数组如果满足以下条件,那么它是。(不是所有条件),则认为该字符串满足。(窗口条件) 的连续子数组的。1.给你一个整数数组。1.给你一个整数数组。的连续子数组的数目。

2025-05-25 21:07:20 807

原创 每日算法刷题Day14 5.24:leetcode不定长滑动窗口求子数组个数越长越合法4道题,用时1h20min

2.我的思路是用unordered_map记录字符次数,但是每次while循环判断条件都要遍历一遍unordered_map,耗时太大。2.我的一开始思路是用bool遍历维护奇偶性,但是增加right元素可以,移出left元素就不行了,故还是采用了乘积来判断,会超内存。2.unordered_set计算整个数组不同元素的数目,unordered_map计算子数组中不同元素的数目。3.学习:只要窗口内有一个偶数乘积就是偶数,所以转变为偶数个数至少为1的子数组数目。元素的数目等于整个数组不同元素的数目。

2025-05-24 22:19:56 790

原创 每日算法刷题计划day13 5.22:leetcode不定长滑动窗口最短/最小1道题+求子数组个数越长越合法2道题,用时1h

但是最后两个测试点会超时,因为n很大情况下,子数组不存在满足条件,left要在内部while循环sum>target成立条件下才能右移,会出现right和left交替右移的情况,耗时很长。:题目说的最大元素指整个 nums 数组的最大值,不是子数组的最大值。4.保持left和right的右移,要映射到数组上才取余n,而不是让left和right加1就取余n,会导致算长度变复杂。:题目说的最大元素指整个 nums 数组的最大值,不是子数组的最大值。(窗口条件)的子数组,并返回满足这一条件的子数组的。

2025-05-22 20:04:20 1031

原创 每日算法刷题计划Day12 5.21:leetcode不定长滑动窗口求最短/最小3道题,用时1h40min(有点长了)

2.我的想法比较复杂,想跟求最长/最大套路一样,窗口不满足条件更新窗口,但是这题右移right会一直满足条件,所以想到左移left,但是得先找到第一个满足条件的窗口。另一种思想是while中先假设右移left,若满足条件就进入while,然后真正右移left,while循环结束窗口肯定也满足条件,再判断满足条件(刚开始不一定满足)然后更新答案(while外更新答案)为窗口,但是因为right是开区间,会遇到无法再右移的情况,需要一个tag变量进行判断,并在res更新前判断tag退出for循环,调试了一会。

2025-05-21 23:33:37 1027

原创 每日算法刷题Day11 5.20:leetcode不定长滑动窗口求最长/最大6道题,结束不定长滑动窗口求最长/最大,用时1h20min

3.逆向思维转换后k=totalSum-x,要判断k为负的特殊情况。2.逆向思维转换:求和为totalSum-x的最长窗口大小。2.我的思想,F和T分开来求,两个最大值再取最大值。2.题意转换:窗口内不含相同元素,哈希表维护即可。1.如果一个数组中所有元素的频率都。每一次操作时,你应当移除数组。2.题意转换:所有元素的频率都。结果的题数,请你返回在不超过。最左边或最右边的元素,然后从。2.题目理解:0的数量不超过k。,请你从中删除一个含有。1.给你一个正整数数组。1.给你一个整数数组。

2025-05-20 15:24:04 462

原创 每日算法刷题Day10 5.19:leetcode不定长滑动窗口求最长/最大4道题,结束定长滑动窗口,用时1h

不定长滑动窗口主要分为三类:求最长子数组,求最短子数组,以及求子数组个数。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。中对应的子字符串,则返回可以转化的。中对应的子字符串,则返回可以转化的。请你在删掉元素的结果数组中,返回。(窗口条件) 的非空子数组的长度。1.一般题目都有「至多」的要求。子字符串,并返回该子字符串的。子字符串,并返回该子字符串的。,你需要从中删掉一个元素。3.给你一个二进制数组。的子字符串转化为它在。1.给你一个二进制数组。的子字符串转化为它在。

2025-05-20 13:46:36 756

原创 算法刷题Day9 5.18:leetcode定长滑动窗口3道题,结束定长滑动窗口,用时1h

2.题意转换->数组1的总数为k,长度为k的定长滑动窗口移动,统计量为当前窗口1的数量sum1,交换次数就是k-sum1。size()返回类型为size_t,有些地方的自己强制转换为int。的糖果,但你想保留尽可能多的糖果口味。在与妹妹分享后,返回。上的 1 组合到一起,并返回所有可能中所需。1.你需要通过交换位置,将数组中。:right是开区间,访问。

2025-05-18 20:41:11 421 1

原创 每日算法刷题Day9 5.17:leetcode定长滑动窗口3道题,用时1h

1.为了更好地评估这份计划,对于卡路里表中的每一天,你都需要计算他 「这一天以及之后的连续几天」 (共。为了获得正确的密码,你需要替换掉每一个数字。且不含重复字符的子串,请你返回全部满足要求的子串的。2.利用map来储存字符个数,天)内消耗的总卡路里。

2025-05-17 21:34:22 408

原创 每日算法刷题Day8 5.16:leetcode定长滑动窗口4道题,用时1h

sum1为老板在minutes内从1变成0的总人数,所以为定长滑动窗口,统计量的判断条件就是生气1,统计量就是sum1。1.用defaultdict(int),可以自动为不存在的键生成默认值,避免手动判断和初始化,类似于c++的map,而dict{}不行。3.本题与前几题区别在于统计量要记录子数组互补相同元素的个数,及每个元素出现的次数(为了删除元素),所以需要一个哈希表map来维护。1.当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。,应为维护定长k,一定是k个黑色块。

2025-05-16 12:14:55 416

原创 每日算法刷题计划Day7 5.15:leetcode定长滑动窗口4道题,用时1h

循环内只更新res为sum,最终返回结果除以k即可,因为是定长窗口。为 k 的子串中,最多可以包含多少个元音字母。的连续子数组,并输出该最大平均数。的连续子数组,并输出该最大平均数。三步走:入窗口-更新答案-出窗口。sum记得开long long。4.构建并返回一个长度为。1.构建并返回一个长度为。2.找出平均数最大且。

2025-05-15 20:33:43 447

原创 算法每日刷题 Day6 5.14:leetcode数组1道题,用时30min,明天按灵茶山艾府题单开刷,感觉数组不应该单算

非负数,两个指针neg和neg+1分别向左右移动,选择较小的放到新数组里面,一方遍历完把另一方全部平方加到后面,类似于归并排序思想(思考为什么?1.与法二都是双指针思想,不够left从0开始,right从n-1开始,1.平方赋值到另一个数组+sort排序。,所以需要维护一个新数组待赋值位置变量。创建一个长度为n的空数组。

2025-05-14 22:06:40 392

原创 每日算法刷题计划Day5 5.13:leetcode数组3道题,用时1h

1.快慢双指针,10 27.移除元素 val=0时的特殊情况,且不再是赋值,而是交换。同向快慢指针,慢指针指向下一个赋值位置,快指针遍历寻找不重复元素,即。(1)一个字符是否会被删掉取决于后面的字符,与前面的字符无关,所以。时,找到不重复元素,赋值给slow位置,slow++,因为是字符串处理,可以直接用字符串当栈。:栈要弹出元素时立刻想到判断栈不为空。题目条件有序数组删除重复元素,所以。为不重复元素区域,长度为slow。:数组元素为0直接返回0,让。,来模拟这一过程,就是。3.删除最后一个字符为。

2025-05-13 21:53:12 496

原创 每日算法刷题Day4 5.12:leetcode数组4道题,用时1h

左指针left为当前待处理位置,若值等于val,则把右指针right的值赋值过去,且right–,否则left++。左指针left为下一个要赋值的位置,右指针为当前待处理位置,如果不等于val,则赋值到left位置,left++。还是二分查找,当时相对于上一题,题目条件变为“如果目标值不存在于数组中,返回它将会被按顺序插入的位置。找,因为有序,可以优化为二分查找,跟第8题一样。1.找x的平方根,不利用sqrt函数,就是从。2.非负整数x,包括0,left从0开始。,同时查找过程中更新res。

2025-05-12 15:01:20 339

原创 每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)

1.n行m列矩阵,因为是按照对角线遍历,但是分析可得有两种对角线遍历方式,从左下到右上和从右上到左下,是由第i条对角线的奇偶决定的,所以按照对角线遍历,2.对于偶数对角线,是从左下到右上的遍历顺序,但又会出现遍历初始位置不同的情况,故再分类。另外两种原地优化空间的做法暂时不是目前刷题目标,故不考虑。利用两个集合分别储存要清0的行和列索引。1.没有三目运算符,要写成。2.没有++运算符,要写成。

2025-05-11 21:49:51 487

原创 每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min

2.接下来分析i和j的遍历范围,由上述4个位置得,只要遍历1个区域位置即可,所以把正方形划分成4份,取左上角区域,但是不知道n是奇还是偶,所以要分奇偶讨论。python对象本质是对象的指针,而不是独立存值的容器。:让a指向b指向的对象,改变a的同时也改变b的内容。原始值,再去看该位置变到哪一位置。分析可得,4个位置翻转90度就是。才深拷贝二维数组matrix。额外空间数组来回赋值拷贝。只复制了外层,内层仍共享。整数除法是//,向下取整。1.翻转90度得到等式。创建一个新的nxn数组。

2025-05-10 21:19:25 421

原创 每日算法刷题Day1 5.9:leetcode数组3道题,用时1h

然后再定义一个二维数组res储存结果,若res数组为空,则放入元素,若待放入元素左端点大于res数组最后一个元组右端点,则放入数组,否则出现重叠,更新res数组最后一个元素右端点。计算总和和左侧和,要让左侧和等于右侧和,即左侧和=总和-左侧和-当前数字。二分搜索,res初始值为n(找不到插最后面)3.-1为List最后一个元素索引。匿名函数,传入x,返回x[0]5.List的append方法。

2025-05-10 21:15:46 363

原创 每日算法刷题计划

这是我每天坚持刷算法题的仓库,每天刷1-3道,时间30-40min,加油!目前考虑leetcode+洛谷形式,c++和python3语言,leetcode主要学核心思想,洛谷学会输入输出格式每日打卡:markdown+csdn打卡。

2025-05-10 21:14:18 949

原创 蓝桥杯备赛 Day 21 图论基础

1.经典拓扑排序加动态规划,dp数组表示入度为0的点到当前点的最大距离,因为一个y可能有多个x到达,所以有状态转移方程。,否则先枚举i和j,再枚举k,如果i到j的最短路要经过多个中间点,会发生错误,而先枚举中间点,是一小段一小段更新的。1.此题要求即拓扑排序的要求,但是难点在于拓扑排序的结果有很多种可能,答案要最小字典序排序,1.此题为图例中的最短路径问题,不适合深度搜索DFS,而应该用层序搜索BFS,使用队列实现。(1)从起点(1)开始,每次找出不在mst集合中,dist最小的点x,将他放入mst中。

2025-04-08 21:25:54 1008

原创 蓝桥杯备赛 Day 20 树基础

3.要获得所有结点到某个结点的路径和,就是移动父结点到子结点,子结点的子树路径都-1,而另一部分全部+1,这个DFS2的逻辑4.要获得子树的人数和sz,得首先一个DFS1遍历获取,且要获得dp[1]的大小,得知道每个结点到1结点的深度dep,所有DFS1完成dep和sz两个数组的更新。

2025-04-08 21:25:19 957

原创 蓝桥杯备赛 Day 19 加练dfs

是否需要回溯?输入参数有哪几个(当前dfs和下一个dfs什么会变?是否需要返回值?

2025-04-06 21:27:13 793

原创 蓝桥杯备赛 Day 18 2023真题

5.判断左上方和上方涉及x-1和y-1,因此需要单独判断。

2025-04-06 21:26:32 849

原创 蓝桥杯备赛Day17 数学

记住mod= 998244353998244353是质数,1000000007(1e9 + 7)是质数,1e9 + 9是质数。(a % p / b % p) % p(特殊)的问题,利用二进制来算,如下图所示。

2025-04-04 15:28:36 795

原创 蓝桥杯备赛 Day16 单调数据结构

单调栈和单调队列能够动态的维护,还需用1-2两个数组在循环时从单调栈和单调队列中记录答案1.时刻保持内部元素具有单调性质的栈(先进后出),核心是:入栈时逐个删除所有"更差的点",一般可分为单调递减栈、单调递增栈、单调不减栈、单调不增栈,例如要求某个点左侧第一个比它大的点的值(或位置),如下图所示:![[单调栈.png]]最后一个5入栈前要把前面那个5弹出,保证严格单调递减2.单调栈用STL的stack实现,stack的操作:百亿富翁学习:(1)这题就是典型的单调栈的使用,就是对于每栋楼,左边第一

2025-04-04 15:28:00 1510 1

空空如也

空空如也

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

TA关注的人

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