自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 逃跑【蓝桥杯】/链式前向星建图

这一题主要想学习一下链式前向星,附上别人的思路。

2024-05-19 16:10:38 115

原创 抓娃娃【蓝桥杯】/前缀和+lower_bound+upper_bound

这个条件,说明只要区间经过线段中点就肯定能包含它。但有的中点是小数不好处理,于是乘以2。在从大到小的排序数组中,重载lower_bound()和upper_bound()思路:其实就是求区间是否经过线段的中点,因为。

2024-05-19 11:06:40 312

原创 数三角【蓝桥杯】/STL

思路:遍历每一个点,找到把这个点作为顶点,能构成的等腰三角形的个数,再将不合法的点删除。

2024-05-17 09:49:17 423

原创 Tarjan割边

深度优先遍历时从一条边进入这个点,不能从这条边回去。例题:删边问题【蓝桥杯】

2024-05-17 09:20:26 148

原创 G.AB路线【蓝桥杯】/bfs+可重复走

思路:本题和传统的bfs题目不同,本题为了满足题目先走K个A再走K个B,可能需要重复走某个格子才能继续走下去,故vis数组可以多开一维,vis[x][y][z]表示第z次走到x行y列这种情况是否出现过。比如到7这个时,6%(2*k)=0,表示是k次中第0次到达,如果前面已经出现过k次中第0次到达该点这种情况则代表重复了,不行。

2024-05-10 17:22:47 431

原创 欧拉筛选/找到小于n的所有素数

所采用的一个惯用思路是:找到一个素数后,就将它的倍数标记为合数,也就是把它的倍数“筛掉”;如果一个数没有被比它小的素数“筛掉”,那它就是素数。欧拉筛法的大致思路也是如此,就是其中有些细节有差异。欧拉筛法拥有线性的复杂度,而且编码较简单,应用十分广泛。

2024-05-09 22:56:53 184

原创 正则问题【蓝桥杯】/dfs

刚开始用的是栈,没有想到dfs…

2024-04-07 17:01:28 192

原创 填字母游戏【蓝桥杯】/博弈+dfs

【代码】填字母游戏【蓝桥杯】/博弈+dfs。

2024-04-07 16:58:13 427

原创 青蛙跳杯子【蓝桥杯】/bfs

思路:刚开始用的是dfs,但是不太行,DFS 可能会导致搜索深度过深,增加了时间复杂度,BFS 适合求解最短路径问题,BFS 在搜索过程中,首先访问距离初始节点最近的节点,因此可以保证找到的路径是最短的,所以应该选择bfs。本题可以以*为切入点,来进行跳跃。

2024-04-06 12:25:54 251

原创 包子凑数【蓝桥杯】/完全背包

思路:当n个数的最大公约数不为1,即不互质时,有无限多个凑不出来的,即n个数都可以表示成kn,k为常数且不为1。当n个数的最大公约数为1,到了某个数之后就全都可以凑出来。根据本题的数据,可以直接遍历到10010就行。

2024-04-05 16:06:47 430

原创 I.像素放置【蓝桥杯】/dfs+剪枝

思路:利用dfs填入0或者1,并利用数字进行判断,另外这一题数组要从1开始而不是0,这样在num方法中可以少了判断的操作。

2024-03-29 15:01:03 393 1

原创 异或和之和【蓝桥杯】/拆位+贡献法

于是我们可以遍历每个位,本题最多就20个位,同时利用前缀和记录到该数时几个位是1,如果是奇数,那这个数到前面所有数这个区间和这个数减去前缀和为偶数的区间都有贡献,偶数也是,如图。思路:刚开始考虑遍历L和R,同时可以用一个二维数组存储算过的值,但是时间复杂度还是O(n^2),所以这种还是要拆位和利用贡献法。可以对于每个位,一定区间内,如果有奇数个1则异或值为1,有偶数个1则异或值为0,且某个位对这个区间内的贡献为2^i。

2024-03-28 15:05:19 397

原创 高精度算法

例题:P1601【洛谷】

2024-03-23 13:49:44 657

原创 刷题笔记细节

用stoi函数和substr函数太多可能会导致超时,可以考虑用char s[505]来储存字符串并直接索引获得字符,节省时间

2024-03-17 21:25:28 379

原创 H.整数删除【蓝桥杯】优先队列+双向链表

queue注意:当优先队列储存的类型为pair时,先按照first的元素来比大小,first相同再按照second来比。

2024-03-17 15:11:30 468

原创 J.砍树【蓝桥杯】树上差分+LCA

多次对树上的一些路径做加法操作,然后询问某个点或某条边经过操作后的值,就要考虑树上差分了。

2024-03-17 13:14:36 408

原创 最近公共祖先LCA / 倍增法+Tarjan法

LCA(Least Common Ancestors)最近公共祖先问题。指在有根树中,找出某两个结点u和v最近的公共祖先。

2024-03-16 18:36:05 757

原创 F.岛屿个数【蓝桥杯】/dfs+环

小蓝得到了一副大小为 M × N 的格子地图,可以将其视作一个只包含字符‘0’(代表海水)和 ‘1’(代表陆地)的二维数组,地图之外可以视作全部是海水,每个岛屿由在上/下/左/右四个方向上相邻的 ‘1’ 相连接而形成。

2024-03-13 21:01:08 407

原创 E.接龙数列【蓝桥杯】/动态规划

对于一个长度为 K 的整数数列:A1, A2, . . . , AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字 (2 ≤ i ≤ K)。例如 12, 23, 35, 56, 61, 11 是接龙数列;12, 23, 34, 56 不是接龙数列,因为 56的首位数字不等于 34 的末位数字。所有长度为 1 的整数数列都是接龙数列。现在给定一个长度为 N 的数列 A1, A2, . . . , AN,请你计算最少从中删除多少个数,可以使剩下的序列是接龙序列?

2024-03-13 15:33:04 551

原创 LCR 112. 矩阵中的最长递增路径【leetcode】/dfs+记忆化搜索

给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。:4:最长递增路径为 [1, 2, 6, 9]。:4:最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方向上移动。:1。

2024-03-10 11:50:38 477

原创 LCR 101. 分割等和子集【leetcode】/动态规划01背包优化

给定一个非空的正整数数组 nums ,请判断能否将这些数字分成元素和相等的两部分。:true:nums 可以分割成 [1, 5, 5] 和 [11]。:false:nums 不可以分为和相等的两部分。

2024-03-10 09:38:17 361

原创 309. 买卖股票的最佳时机含冷冻期【leetcode】/动态规划

给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。: 3: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]: 0。

2024-03-07 14:57:52 350

原创 123. 买卖股票的最佳时机 III【leetcode】/动态规划难

给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。:6:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。:4。

2024-03-06 16:46:50 339

原创 121. 买卖股票的最佳时机【leetcode】/动态规划

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。:5:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;

2024-03-06 15:00:36 379

原创 72. 编辑距离【leetcode】/动态规划难

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。:3horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’):5intention -> inention (删除 ‘t’)inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)

2024-03-05 21:59:39 447

原创 516. 最长回文子序列【leetcode】/动态规划

给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。:4:一个可能的最长回文子序列为 “bbbb”。:2:一个可能的最长回文子序列为 “bb”。s 仅由小写英文字母组成。

2024-03-04 22:53:39 362

原创 LCR 095. 最长公共子序列【leetcode】/动态规划

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。:3:最长公共子序列是 “ace” ,它的长度为 3。:3。

2024-03-04 22:13:37 440

原创 873. 最长的斐波那契子序列的长度【leetcode】/动态规划

如果序列 X_1, X_2, …给定一个严格递增的正整数数组形成序列 arr ,找到 arr 中最长的斐波那契式的子序列的长度。如果一个不存在,返回 0。(回想一下,子序列是从原序列 arr 中派生出来的,它从 arr 中删掉任意数量的元素(也可以不删),而不改变其余元素的顺序。例如, [3, 5, 8] 是 [3, 4, 5, 6, 7, 8] 的一个子序列): 5: 最长的斐波那契式子序列为 [1,2,3,5,8]。: 3。

2024-03-04 21:35:55 395

原创 1027. 最长等差数列【leetcode】/动态规划

给你一个整数数组 nums,返回 nums 中最长等差子序列的长度。回想一下,nums 的子序列是一个列表 nums[i1], nums[i2], …, nums[ik] ,且 0 <= i1 < i2 < … < ik <= nums.length - 1。并且如果 seq[i+1] - seq[i]( 0 <= i < seq.length - 1) 的值都相同,那么序列 seq 是等差的。:4: 整个数组是公差为 3 的等差数列。:3:最长的等差子序列是 [4,7,10]。:4。

2024-02-20 20:28:28 450

原创 139.单词拆分【leetcode】/动态规划

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。: true: 返回 true 因为 “leetcode” 可以由 “leet” 和 “code” 拼接成。: true: 返回 true 因为 “applepenapple” 可以由 “apple” “pen” “apple” 拼接成。注意,你可以重复使用字典中的单词。: false。

2024-02-18 14:02:14 425

原创 1043. 分隔数组以得到最大和【leetcode】/动态规划

给你一个整数数组 arr,请你将该数组分隔为长度 最多 为 k 的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。返回将数组分隔变换后能够得到的元素最大和。本题所用到的测试用例会确保答案是一个 32 位整数。:84:数组变为 [15,15,15,9,10,10,10]:83:1。

2024-02-17 17:24:28 436

原创 哈希查找【数据结构】

定义哈希函数为H(key) = key%11,输入表长(大于、等于11)。输入关键字集合,用线性探测再散列构建哈希表,并查找给定关键字。测试次数t哈希表长m、关键字个数nn个关键字查找次数kk个待查关键字对每组测试数据,输出以下信息:构造的哈希表信息,数组中没有关键字的位置输出NULL对k个待查关键字,分别输出:0或1(0—不成功,1—成功)、比较次数、查找成功的位置(从1开始)112 104225630171 1 10 61 6 2。

2024-01-04 22:22:32 609

原创 平衡二叉树

平衡二叉树(Balanced Binary Tree) (AVL树)空树,或者任一结点左、右子树高度差的绝对值不超过1的二叉树。平衡因子:左子树的高度 - 右子树的高度。

2024-01-04 21:44:39 326

原创 二叉排序树的创建、插入、查找和删除【数据结构】

二叉排序树也叫二叉查找树、二叉搜索树。

2024-01-04 21:34:17 2134

原创 图综合练习--构建邻接表【数据结构】

已知一有向图,构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构,其中每个数组元素也是单链表的头结点,数组元素包含两个属性,属性一是顶点编号info,属性二是指针域next指向与它相连的顶点信息。单链表的每个结点也包含两个属性,属性一是顶点在数组的位置下标,属性二是指针域next指向下一个结点。第1行输入整数t,表示有t个图第2行输入n和k,表示该图有n个顶点和k条弧。第3行输入n个顶点。第4行起输入k条弧的起点和终点,连续输入k行以此类推输入下一个图。

2024-01-03 22:23:01 583 1

原创 先序+中序还原二叉树【数据结构】

输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输出为一个整数,即该二叉树的高度。

2023-12-29 22:41:54 558

原创 D. 银行排队问题之单队列多窗口加VIP服务

银行排队问题VIP窗口

2023-12-26 22:34:00 398

原创 使用栈求表达式的值【数据结构】

转换流程:后缀表达式的求解流程:

2023-12-26 21:25:43 611

原创 排序笔记总结

排序

2023-12-26 17:21:25 927

原创 二叉搜索树的最近公共祖先【数据结构】

二叉搜索树

2023-12-11 21:08:10 628

空空如也

空空如也

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

TA关注的人

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