自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 问答 (1)
  • 收藏
  • 关注

原创 力扣--数组6.Z字形变换

处理特殊情况:定义和初始化变量:遍历字符串并填充每行字符:合并所有行的字符形成最终结果:

2024-06-03 13:52:02 336

原创 力扣--双指针15.三数之和

力扣--双指针15.三数之和

2024-06-01 18:26:53 424

原创 力扣--数组14.最长公共前缀

【代码】力扣--数组14.最长公共前缀。

2024-05-26 16:42:43 224

原创 力扣--字符串58.最后一个单词的长度

【代码】力扣--字符串58.最后一个单词的长度。

2024-05-25 17:05:30 341

原创 力扣--哈希表13.罗马数字转整数

首先我们可以知道,一个整数,最多由2个罗马数字组成。

2024-05-25 16:50:20 592

原创 蓝桥杯 2019 省A 糖果 动态规划/二进制

这里口味组合指的是一个二进制数,每一位表示对应口味是否被包含,如果某一位为1,则表示对应的口味被买了,为0则表示没有买。它也是一个二进制数,每一位表示对应的口味是否在这包糖果里,如果某一位为1,则表示这个口味在这包糖果里,为0则表示不在。同样以三种口味为例,如果第。首先,定义了两个数组:dp数组用于存储达到某种口味组合所需的最小糖果包数,v数组用于存储每包糖果的口味情况。最后,如果对应全口味的糖果包数为100,表示无法满足所有口味,输出-1;),则表示第2种口味和第3种口味在这包糖果里,第1种口味不在。

2024-04-12 18:26:16 440

原创 力扣--图论/Prim1584.连接所有点的最小费用

【代码】力扣--图论/Prim1584.连接所有点的最小费用。

2024-04-11 18:44:06 357

原创 力扣--动态规划完全背包/深度优先08.11.零币

那么我们考虑,不限各类硬币数,而且可以看作:面值25的硬币重量是25,价值也是25,这可以视为动态规划里面的完全背包问题,那么就简单了。但是很不幸,示例(28/30)无法完全通过,还是有点超时了。

2024-04-07 11:42:33 400 1

原创 二分答案 蓝桥杯 2022 省A 青蛙过河

2.对于一个跳跃能力 y,青蛙能跳过河 2x 次,当且仅当对于每个长度为 y 的区间,这个区间内 h 的和都大于等于 2x。1.从学校到家和从家到学校,跳跃都是一样的,直接看作2*x次过河就可以。

2024-04-05 13:42:02 677

原创 二分答案跳石头游戏

在每次跳跃时,遍历石头数组,根据当前位置和上一次跳跃位置计算跳跃距离,如果距离大于等于最大跳跃长度,则更新当前位置;:问题的解具有单调性,即如果一个解是可行解,那么比它更大的值也必须是可行解,反之,比它更小的值则不是可行解。: 用户输入了三个整数,分别表示石头的总长度l,石头的数量n,以及最多可以撤去的石头数量m。:首先确定一个合适的搜索范围,通常是问题解的可能范围,比如最小可能解和最大可能解之间的范围。: 循环读入每块石头的位置,并计算出最小的相邻石头间距,存储在变量longmin中。

2024-04-04 21:23:17 603

原创 蓝桥杯 2022 省A 选数异或

(注意==的优先级比^高,记得加括号(a[i]^a[j])==x)但是显然这样是不能得满分的,那么我们就要优化一下思路。一种比较无脑暴力点的方法,时间复杂度是(n²+m)。

2024-03-28 20:30:14 565

原创 蓝桥杯 2022 省 A 求和

【代码】蓝桥杯 2022 省 A 求和。

2024-03-28 18:29:49 121

原创 力扣--并查集1631.最小体力消耗路径

把数组每个位置看成图中的一个节点。

2024-03-26 22:08:58 667

原创 力扣--并查集684.冗余连接

然后遍历所有的边,如果两个节点已经在同一个连通分量中,则说明当前边会形成环,记录下环中的两个节点。利用并查集(Union-Find)的思想,通过合并连通分量的方式,来判断图中是否存在环,从而找出冗余的边。函数用于查找节点的根节点(即所在连通分量的代表节点),采用了递归方式实现路径压缩,以提高查找效率。函数用于将两个节点连接在一起,即将其中一个节点的父节点更新为另一个节点的父节点。函数用于寻找冗余连接的边,即能够形成环的边。首先初始化父节点数组。在主函数中,首先创建Solution类的一个对象,然后调用。

2024-03-26 12:48:51 375

原创 力扣--并查集547.省份数量

【代码】力扣--并查集547.省份数量。

2024-03-25 22:19:50 486

原创 蓝桥杯 2023 省A 颜色平衡树

重儿子: 对于一个非叶节点u ,设v 是u 的儿子,且以v 为根的子树包含的节点比以u 的其他儿子为根的子树包含的节点都多,则称v 为u 的重儿子。遍历重儿子,遍历完不用清零,再遍历,将轻儿子合并到重儿子上去,其合并结果存储于全局数组。轻儿子: 对于一个非叶节点u ,在u 的各个儿子中,除了重儿子,都是轻儿子。的下一条邻接边在边数组中的位置。在树的边结构中,每条边连接两个节点,次的不同颜色的数目。的下一条邻接边在边数组中的位置,以便能够快速地遍历节点。就是其中一个节点的编号,表示了这条边连接到了哪个节点。

2024-03-24 21:14:30 904

原创 蓝桥杯 2022 省B 砍竹子

非常明显,这题是个贪心。因为这题是求最小操作次数,而且每次操作都会变小,所以肯定要优先操作大的元素,这样它变小之后才可能和其它元素一起操作以减少操作次数。所以:建立两个数组,一个存竹子高度,一个存还能被砍的次数。读入完之后循环把序列中砍伐次数最大的竹子砍一次并记录砍伐次数。这里注意,区间修改的要求是。,所以要判断砍伐次数最大的竹子是否相邻且高度相同,如果是那就一起砍了。

2024-03-22 22:30:26 444

原创 蓝桥杯 2022 省B 积木画

这是个典型的动态规划问题,重点在于找到他的递推方程。可简单算出填满第0 1 2 3 4列个数为0 1 2 5 11;运气好点,找到递推公式dp[i]=2*dp[i-1]+dp[i-3];直接解决了。但我们还是按照动态规划一步一步来。状态定义:初始状态:状态转移方程:边界条件:结果输出:综上所述,这段代码使用动态规划的思想,通过状态转移方程计算填满画布所需的不同方式数,并输出结果。占满状态有个很不好想到的类型,就是dp[i-2][1],本来我们都是只考虑加一个积木后的情景,因为我们不考虑除了上下突和

2024-03-22 21:36:20 515

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

但是很显然这个方法耗的时间很长,只能通过部分示例。那么我们要另寻他法。动态规划是一个好方法,但是实际操作过程中还是不那么好想。

2024-03-22 19:52:02 1844

原创 蓝桥杯 2023 省A 更小的数

【代码】蓝桥杯 2023 省A 更小的数。

2024-03-20 21:44:03 605

原创 蓝桥杯 2023 省B 飞机降落

现在时间是10,有个飞机20才到,我们是可以干等10分钟。首先,这题要求的数据量比较少,我们可以考虑考虑暴力解法。

2024-03-19 19:52:41 458

原创 蓝桥杯 2023 省B 冶炼金属

【代码】蓝桥杯 2023 省B 冶炼金属。

2024-03-19 16:52:46 139

原创 蓝桥杯 2023 省B 接龙数列

【代码】蓝桥杯 2023 省B 接龙数列。

2024-03-19 12:37:02 310

原创 力扣--回溯算法51.N皇后

【代码】力扣--回溯算法51.N皇后。

2024-03-19 12:29:49 347

原创 力扣--深度优先算法/回溯算法47.全排列 Ⅱ

【代码】力扣--深度优先算法/回溯算法47.全排列 Ⅱ。

2024-03-12 21:40:32 405

原创 力扣--深度优先算法/回溯算法46.全排列

【代码】力扣--深度优先算法/回溯算法46.全排列。

2024-03-12 18:38:25 270

原创 力扣--动态规划/深度优先算法/回溯算法93.复原IP地址

这题主要用了动态规划和回溯算法。

2024-03-11 20:38:24 751

原创 力扣--深度优先算法/回溯算法90.子集Ⅱ

【代码】力扣--深度优先算法/回溯算法90.子集Ⅱ。

2024-03-11 20:14:44 199

原创 力扣--深度优先算法/回溯算法78.子集

【代码】力扣--深度优先算法/回溯算法78.子集。

2024-03-11 20:08:30 412

原创 力扣--动态规划/回溯算法131.分割回文串

【代码】力扣--动态规划/回溯算法131.分割回文串。

2024-03-10 21:35:29 435

原创 力扣--深度优先算法/回溯算法40.组合总和 Ⅱ

例如[1,2,1],target为3时,[[1,2],[2,1]],但是这样两个算是同一组和,而如果用set把重复的去了,又会导致当target为2时,只有[2],而[1,1]这个答案就忽略了。// 对候选数组进行排序,方便后续处理 sort(candidates.begin(), candidates.end());// 避免重复选择相同的数字,如果当前数字与前一个数字相同且不是起始位置,则跳过。2.数组中可能可以有重复的数这样会导致重复选。1.同一个数不能重复选;

2024-03-10 16:59:46 338

原创 力扣--深度优先算法/回溯算法39.组合总和

【代码】力扣--深度优先算法/回溯算法39.组合总和。

2024-03-10 16:31:13 196

原创 力扣--深度优先算法/回溯算法216.组合总和 Ⅲ

【代码】力扣--深度优先算法/回溯算法216.组合总和 Ⅲ。

2024-03-10 15:52:48 295

原创 力扣--深度优先算法/回溯算法77.组合

回溯算法是深度优先算法的一种特殊情况。

2024-03-10 15:16:19 294

原创 力扣--动态规划97.交错字符串

我们想要判断是否可以通过交错组合。我们可以用一个二维数组。假设我们有两个字符串。

2024-03-10 14:42:04 305

原创 力扣--动态规划5.最长回文子串

时间和空间复杂度都为O(n²),还是不是非常好。

2024-03-10 14:11:24 263

原创 力扣--贪心算法763.划分字母区间

【代码】力扣--贪心算法763.划分字母区间。

2024-03-09 22:24:19 383

原创 力扣--滑动窗口/单调队列239.滑动窗口最大值

因为如果滑动窗口暴力处理,时间复杂度为O(n²),无法通过。1.单调队列里单调递减,但是怎么找到什么时候把队首踢出队列?方便判断是否队首元素已经该提出窗口。,并且队列里不是存放数字大小而是。2.队首队尾都要进行删减操作。最后找到好的解决方法,用。

2024-03-08 16:29:05 649

原创 力扣--滑动窗口438.找到字符串中所有字母异位词

【代码】力扣--滑动窗口438.找到字符串中所有字母异位词。

2024-03-08 16:16:21 268

原创 力扣--动态规划516.最长回文子序列

【代码】力扣--动态规划516.最长回文子序列。

2024-03-06 19:11:25 249

空空如也

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

TA关注的人

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