自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法 模版

遍历排序后的边,如果边收尾的两个节点在同一个集合中,说明如果连上这条边图中会出现环;如果边首尾的两个节点不在同一个集合,加入到最小生成树,并把两个节点加入同一个集合。upper寻找第一个大于q的数的地址,lower寻找第一个大于等于q的数的地址。如果对a数组l到r均+c,那么只需对b数组b[l]+c,b[r+1]-c。a[n]是b[n]的前缀和数组,b[n]是a[n]的差分数组。如果求b数组从l到r的和,那么只需查询a[r]-a[l]。思路:边的权值排序,因为要优先选最小的边加入到生成树里。

2025-04-11 22:53:16 403

原创 刷题日记5

思考:1.题目是求目标子数组,长度是越长越好,那么规律就是找到每一个符合条件的最短子数组,res+=1+l-1=l;因为最短的符合条件的子数组,再在他的左边加数,也还是符合。2.双指针构成滑动窗口,右指针遍历整个数组,当a,b,c都出现时,左指针右移,缩小窗口。那么什么时候统计满足条件的子数组个数?右指针每次右移时,更新res+=l;

2025-02-25 22:01:42 505

原创 刷题日记4

思考:1。思路是正确的,和灵神思路一样。值得肯定。2。卡点一:计算累加sum的时候,需要s[r]-'0'。不能直接sum+=s[r]。3。卡点二:字符串之间的比较。s1<s2。按照字典序进行比较。abc<abd。4。卡点三:第二层while循环中,判断条件还要加上s[l]=='0'。5.在逻辑运算中,&&优先级高于||

2025-02-17 20:03:43 360

原创 刷题日记3

思路:1。有很多数字,不知道以哪个为基准进行变换,那肯定每个都要试,遍历。r进行遍历。2.我们的k不一定能用完,每次使用k后都要更新res,往模板上靠,那么二层循环呢?我们不一定要从头开始和后面的基准对齐,很可能不够,因此,需要排序,需要l在左侧在k不够加的时候减掉前面的。

2025-01-21 19:30:11 459

原创 刷题日记2

但是在此题中,会有数组总和小于x的情况,也就是让lzair的右边,造成数组溢出。2.r++应该在最后,因为这里我们的处理还需要用到此时遍历的r对应的值,(map[nujms[r]]>1),可以看上一题是map.size()>2。思考:没有想到如何使用滑窗,思路是创造一个三个0的滑窗,可以固定计算滑窗内的最长子数组。3.第二层while循环中,需要直接处理,不要添加if条件,添加if条件会把1233456这样的情况判错,(重复的3前面还有12)思考:还是模板,但是增加了新玩法,两种字符,变哪一种都可以。

2025-01-12 21:35:54 544

原创 刷题日记1

思考:正常套路处理,会遇到k=0的情况,导致数组越界。没有太关注这个。需要注意思考:确实好坑。主要就考察对字符串的处理把。1.如何将字符'2'转换成整数2呢?'2'-'0'即可。2.如何将整数2转换为字符'2'呢?2+'0'即可。因为'0'的ascii码是48,50对应字符'2'。3.最好先给两个字符串补齐,我没补齐刚开始,遍历的时候有点点复杂。

2025-01-08 15:44:46 454

原创 蓝桥杯第二十场小白入门赛

用数学思维来分析:设k*k区间中分别有a行,b列被选中,即长度为n的字符串中有a个1,长度为m的字符串中有b个1。最后看了看别人的和我相似的思路,才发现原来自己思路有漏洞,我把可能情况分两部分,一是两个目标地点在同一侧,二是不在同一侧。查看了测试用例后,我才明白,可能茶壶容量远小于一杯茶的容量,也就是说,你要倒满一杯茶,需要接好几次水壶,而我的代码中循环一次res最多也加一。后果就是,对于这类测试用例,我的循环结束了,我的sum还远远小于0,还没加成正值。我的思路代码:(但我不知道哪有错误)

2024-10-26 21:10:29 1390 1

原创 图论刷题

分析:对于这道题,dfs与bfs的做法,dfs函数中还有对dfs函数本身的调用;bfs函数中没有对bfs函数本身的调用,bfs做法中,对一个点进行bfs函数,把这个点压入队列中,让后从队列中取出点,对点的四周进行遍历,如果符合条件,就把点压入队列中,让后函数一直持续从队列中取数进行遍历,直到队列中为空。不过这道题应该还是要练图论的遍历,用的dfs遍历,感觉对图论的遍历更加掌握了。dfs法一:(dfs函数处理下一个节点,不需要再写终止条件,因为终止条件包含在单层循环处理中)卡码网 98. 所有可达路径。

2024-10-17 22:45:33 943

原创 动态规划

56. 携带矿石资源(第八期模拟笔试)方法二:(双指针法)

2024-10-03 15:00:00 394

原创 动态规划

思考:01背包 对容量的遍历,如果是滚动数组 ,要倒序遍历!因为每个物品只有一个。46. 携带研究材料(第六期模拟笔试)(01背包模板题)完全背包 则不需要倒序遍历,因为每个物品都有无数个。52. 携带研究材料(第七期模拟笔试)到此为止,学习了01背包和完全背包。57. 爬楼梯(第八期模拟笔试)方法2:使用滚动数组。

2024-09-18 14:17:10 339

原创 day 10 贪心算法

改进:容器使用了list,list底层是链表实现的,比起vector能减少时间复杂度。饼干从大的开始利用,优先满足胃口大的;饼干从小的开始利用,优先满足胃口小的;感觉加油站这题做的很晕。按照区间末端进行排序。

2024-08-20 13:40:59 1556 1

原创 day 9 回溯算法

优化后的比之前的在叶子结点少递归一层。在排序candidates后,碰到target<0的情况直接结束本层的遍历,后面没遍历到的也不用遍历了。1.目标数n一直在随i的加入减小,如果目标数n已经<0,那么剪枝。即path中的数已经大于目标数了。利用数组去重,因为题目的数值范围小,所以可以尽量使用。剪枝优化:(对每层循环遍历的范围进行了缩小)2.对for循环i的遍历范围进行缩小。也可以不用st数组去重。

2024-08-08 15:12:59 534

原创 day 8二叉树

我觉得这个还有点难理解,突然不明白为什么中序了,不明白递归了。左递归到最深层,pre从最深层/最小值开始。还要记得if条件语句里面的pre加条件不为空。解法2:不用记录在数组中,可以遍历的时候就判断,不过还是要利用有序性的特性。方法2:(不用数组记录,记录上一个节点,遍历过程中直接进行比较)利用二叉搜索树的特性,通过中序搜索得到数组,验证是否是递增的。二叉搜索树的特殊性:节点左右孩子分别小于,大于该节点。解法3:直接记录上一个节点,比较两个节点对应的值。方法3:(中序迭代法)迭代法:(层序遍历)

2024-08-01 20:53:39 400

原创 day 7 二叉树H`1

自己写的:(其实暗含的有终止条件,因为我都加了if条件判断了,只要不满足就不会执行if后的语句,而且主要函数是void类型,走到函数整体结尾就结束了。前序遍历求树的深度,后序遍历求树的高度。深度是从根节点出发计算,高度是从叶子结点出发开始计算。与求深度相似,用前序。

2024-07-29 13:38:07 214

原创 day 6 二叉树

判断收获的地方的时候,是这个节点的左右子节点都为空的时候,并且注意是叶节点到根节点。如果节点数是1,那深度就是1,但是如果节点不是1,就要注意最短一定不是1。1.确定递归函数的参数和返回值。3.确定单层递归的逻辑。递归法:(后序遍历)

2024-07-25 11:48:42 324

原创 leetcode 二叉树 空指针报错

好像没有用似的,必须在递归函数中添加这行代码才不会报错。

2024-07-24 20:27:30 382 1

原创 day5 栈与队列

【代码】day5 栈与队列。

2024-07-20 11:57:42 143

原创 day4字符串

55. 右旋字符串(第八期模拟笔试)54. 替换数字(第八期模拟笔试)

2024-07-18 22:27:19 156

原创 day3 哈希表

【代码】day3 哈希表。

2024-07-16 20:14:53 135

原创 day2 链表

【代码】day2 链表。

2024-07-14 19:45:08 214

原创 刷题day1 数组

【代码】刷题day1 数组。

2024-07-13 16:21:01 239

原创 计组设计十六位运算器实验感想总结

如果有什么思路想法之类的,我身边的高手,就会进行动手尝试,验证是否正确,总之动手能力就是掰掰这弄弄那,动起来。1.在进行实验初始开始,就感觉到很大阻力,就是学习一个新的东西一样,不知道应该怎么办。就开始在网络上搜集资料,不懂啥就搜啥,跟探索新世界一样,让后再和同学交流一下,大概知道怎么个弄法。4.控制信号一样那里,芯片中控制信号是高电平有效,数据的输入是低电平有效。当然这一点短时间是无法改变的,不这些都是不能突然改变的,但是我意识到了现在,就可以着重加强这些方面的锻炼。实验结束后来点纯粹虚的感想。

2024-06-14 00:01:42 579

原创 web 实验二css页面布局设计总结

除此之外,我觉得写一个简历页面也是一个不小的工程了,对于刚学的学生我来说,刚开始的时候十分恐惧,觉得对如何做一个简历一无所知,对未知的事物就会产生极大的恐惧。但是一直自以为比别人强,装作比别人强的样子,但是到了有竞争比拼的时候,就感觉力不从心。可以设置一个空div,用来清除浮动,以免影响后续的元素布局。后代选择器会选择 #mlth_font 内部的所有 元素,不管它们的层级关系有多深。padding 是指从margin往外的距离,不是和其他盒子之间的距离是padding。

2024-05-25 17:35:32 413

原创 代码随想录 二叉树

int val;

2024-04-28 17:08:09 275

原创 代码随想录day 24 回溯算法

能够解决的问题:排列组合字符串切割求子集棋盘问题。

2024-04-26 16:03:11 507 1

原创 代码随想录刷题day 7

454.四数相加Ⅱ383.赎金信15.三数之和。

2024-04-15 14:42:46 220 1

原创 代码随想录 day6 哈希表

1.使用数组,集合(set,主要是unorder_set,无序,无重复)做哈希表。哈希表一般用来快速判断一个元素是否出现在集合里。2.unorder_set的用法。

2024-04-08 22:54:41 504

原创 代码随想录 day2 双指针思想 与模拟

3.对这样一个数组进行排序,先变小在变大,本身有一定的顺序。那么可以用双指针,从两边开始进行判定,再单独开一个数组,存放判定后的值。5.用vector定义一个二维数组,vector<vector<int>> map(n,vector<int>(n,0));4.p59螺旋矩阵,起初不知道如何进行模拟,能感觉到排列是有规律的,先从左向右,再从上到下,再从右到左,再从下到上,之后重复这4个方向。1.vector类容器,使用sort进行排序时,sort(nums.begin(),nums.end());

2024-04-08 10:44:03 175

原创 代码随想录刷题 day1二分查找与双指针

而mid-1可能是target,但是因为右边界是开区间,所以不能取mid-1,因为mid-1还没判定是不是,而mid已经判定不是了,所以取成右边界没关系。注意,此时是在原数组上进行调整的,移位结束后i++,那么也就是说第一层循环的指针应该在数组前移之后-1,才能指向调整前实指向的值。因为nums[mid]不等于target,所以mid不是右边界点,所以要从mid-1开始再次判断。进行一层for循环,快指针正常向后进行,当遍历的值和目标值不相等时,用快指针指向的值覆盖在满指针指向的位置上。

2024-04-05 21:33:55 226 1

原创 洛谷 P1030 求先序排列 DFS

根据中序序列(左根右)和后序序列(左右根)可以推出来先序序列。后序序列最后一个是根,让后在中序序列中找到根,继而可找到左右子树。再在后序序列中找到左右子树,继而可继续找到根。代码思路:1.输出根节点2.找到左右子树3.对左右子树递归调用dfs。

2024-04-05 19:56:27 308 1

原创 完全背包问题

有 N种物品,背包容量为V,每件2物品可使用无限件。第i件物品体积为vi,价值为wi。怎么装使装入背包的物品价值最大。

2024-03-25 21:44:35 329

原创 0 1背包

有n个物品,容量为V的背包,每件物品只使用一次,第i件物品体积是vi,价值是wi。求将物品装入背包的最大值。

2024-03-22 14:37:29 357 1

原创 BFS广度优先搜索

给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。

2024-03-20 16:48:14 331 1

原创 DFS深度优先搜索 eg842 排列数字

给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照将所有的排列方法输出。

2024-03-17 20:13:46 490 1

原创 双指针算法

O(n^2),两层遍历循环。

2024-03-12 20:34:22 332 1

原创 503(借教室)

如果至少存在一个订单不满足,那么在第一个不能满足的订单之后的订单都属于订单无法满足需输出另一特定值。共有 m 份订单,每份订单用三个正整数描述,分别为 dj,sj,tj,,,表示某租借者需要从第 sj 天到第 tj 天租借教室(包括第 sj 天和第 tj 天),每天需要租借 dj 个教室。按照题目描述,对天数的部分区间均-d,让后判断是否小于0,若有

2024-03-06 21:13:49 514 2

原创 前缀和与差分(二维)

对一块矩形a的子矩阵全部插入某一个数。可以构造二维数组a的差分数组b,将对a的子矩阵插入c数的操作变成以下对几个数的插入:b[x1][y1]+=c,b[x2+1][y1]-=c,b[x1][y2+1]-=c,b[x2+1][y2+1]+=c。(如何求差分数组b,假定b数组为0,a数组即也为0,对b数组每个点插入b[x1][y1]+=c,b[x2+1][y1]-=c,b[x1][y2+1]-=c,b[x2+1][y2+1]+=c)对差分数组操作完之后,再将差分数组b转换成前缀和数组,即所求的数组。

2024-03-04 19:43:06 365 1

原创 前缀和与差分

(一维前缀和)已知数组a长为n,求l~r的总和。

2024-03-03 21:46:19 377 1

原创 二分(学习自用)

二分就是能比暴力枚举能用更少的时间复杂度找出边界点。一个长为n的数组,(l,r分别为左右边界)具有某种性质,能够将数组分成两半,例如左边满足右边不满足。

2024-03-03 16:13:55 362

原创 归 并 排 序

还是分治的思想。

2024-03-01 19:52:05 413 1

空空如也

空空如也

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

TA关注的人

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