- 博客(54)
- 收藏
- 关注
原创 代码随想录算法训练营一刷总结
刚做完算法训练营图论部分的最后一题,这意味着我已经一刷完训练营所有题目,恰巧今天也是程序员节,训练营算是完美完结了。训练营开始一个月后,由于出差和放假搁置了十几天,后面就一天做两天的题量坚持下来了,直到图论章节难度突然变得很大,做题速度又慢下来于是拖了几天最后才完成训练营。训练营完结了,但刷题之路还没到尽头,经过训练营这段时间的专门训练,我感觉自己在理论上掌握了许多算法分章节的知识点,在技能上虽然没有说能够做很难的题,但遇到简单或中等题不会很畏惧了,会去回想知识点并能尽力写成代码,收获多多。
2024-10-24 17:57:09
314
1
原创 代码随想录算法训练营第六十六天| Floyd 算法,A * 算法
训练营六十六天,也是最后一天打卡了,今天解决了图论的最后两个经典问题:一是Floyd 算法用来解决多源最短路,即求多个起点到多个终点的多条最短路径。二是A*算法用来解决搜索最短路问题,尤其可解决带权最短路问题,关键在于。
2024-10-24 17:12:58
474
原创 代码随想录算法训练营第六十五天| Bellman_ford 队列优化算法,bellman_ford之判断负权回路,bellman_ford之单源有限最短路
训练营六十五天打卡,今天学习Bellman_ford算法解决的各个问题,第一题用队列优化,使得算法在稀疏图中拥有更好的时间复杂度。第二题算法松弛n次及以后最短路径值发生变化,可以依据这一点判断负权回路。第三题算法最多经过K个点,记录上一次的minDist数组值进行比较。
2024-10-23 22:08:59
486
原创 代码随想录算法训练营第六十四天| dijkstra(堆优化版),Bellman_ford 算法
训练营六十四天打卡,今天学习了图论中两个经典算法,dijkstra解决有权图(权值非负数)中求从起点到其他节点的最短路径算法,Bellman_ford解决带负权值的单源最短路问题。
2024-10-23 22:02:54
335
原创 代码随想录算法训练营第六十三天| 拓扑排序,朴素dijkstra算法
训练营六十三天图论继续,今天解决了图论的两个经典问题:拓扑排序和最短路的一个解法。
2024-10-22 22:07:59
517
原创 代码随想录算法训练营第五十八天| 110.字符串接龙,105.有向图的完全可达性,106.岛屿的周长
训练营五十八天打卡,图论的代码量比较大,坚持写下来感觉手变热了许多,坚持!
2024-10-15 22:30:53
373
原创 代码随想录算法训练营第五十七天| 101.孤岛的总面积,102.沉没孤岛,103.水流问题,104.建造最大岛屿
五十七天打卡,今天的水流问题和建造最大岛屿问题的优化思路值得学习。
2024-10-15 11:38:13
414
原创 代码随想录算法训练营第五十六天| 99.岛屿数量 深搜,99.岛屿数量 广搜,100.岛屿的最大面积
五十六天打卡,今天知道了图中的深搜与广搜方法,能够熟练应用。
2024-10-14 17:21:58
318
原创 代码随想录算法训练营第四十八天 | 739. 每日温度,496.下一个更大元素 I,503.下一个更大元素II
第四十八天打卡,坚持!今天学习了单调栈的知识和其能对应解决的问题。
2024-10-11 11:37:22
263
原创 代码随想录算法训练营第四十六天 | 647. 回文子串,516.最长回文子序列
四十六天打卡,今天用动态规划解决回文问题,回文问题需要用二维dp解决题目链接解题思路没做出来,布尔类型的:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是为true,否则为false。当s[i]与s[j]不相等,一定是false。当s[i]与s[j]相等时初始化为false。情况三是根据是否为true,在对进行赋值true的。 在 的左下角所以一定要从下到上,从左到右遍历,这样保证都是经过计算的。注意因为的定义,所以j一定是大于等于i的,那么在填充dp[i][j]的时候一定是只填充右上
2024-10-10 20:44:01
605
原创 代码随想录算法训练营第四十四天 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和,392.判断子序列
四十四天补打卡,今天是二维动态规划的应用。
2024-10-09 17:31:16
526
原创 代码随想录算法训练营第四十三天 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组
四十三天打卡,今天解决子序列系列题目,定义dp[i]为以nums[i]为结尾的最长子序列长度。
2024-09-27 17:14:38
333
原创 代码随想录算法训练营第四十二天 | 188.买卖股票的最佳时机IV,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费
训练营四十二天打卡,今天结束买票股票,冷冻期的状态定义很关键,要理解为什么要定义四个状态!
2024-09-26 20:39:27
360
原创 代码随想录算法训练营第四十一天 | 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II,123.买卖股票的最佳时机III
训练营第四十一天打卡,今天解决股票买卖问题,动态规划解法关键在于状态定义。
2024-09-26 11:39:57
322
原创 代码随想录算法训练营第三十九天 | 198.打家劫舍 ,213.打家劫舍II,337.打家劫舍III
第三十九天打卡,今天解决打家劫舍系列问题,树形dp比较难。
2024-09-25 01:19:38
439
原创 代码随想录算法训练营第三十八天 | 322. 零钱兑换,279.完全平方数,139.单词拆分,多重背包
【代码】代码随想录算法训练营第三十八天 | 322. 零钱兑换,279.完全平方数,139.单词拆分,多重背包。
2024-09-24 12:47:11
471
原创 代码随想录算法训练营第三十七天 | 完全背包,518. 零钱兑换 II,377. 组合总和 Ⅳ,70. 爬楼梯 (进阶)
多重背包与01背包的区别是,遍历背包容量的顺序变为由小到大遍历,这样在考虑单个物品时可以多次添加到背包。
2024-09-23 16:24:09
473
原创 代码随想录算法训练营第三十六天 | 1049. 最后一块石头的重量 II,494. 目标和,474.一和零
题目链接解题过程dp[j]表示容量(这里说容量更形象,其实就是重量)为j的背包,最多可以背最大重量为dp[j]。求得dp.back()即为值最接近target的重量target为sum / 2,即要求容量为target的背包中,最多装重量为多少的石头。在计算target的时候,因为是向下取整,所以一定是大于等于dp[target]的。01背包public:i++) {j >= 0;j--) {
2024-09-18 21:17:20
368
原创 代码随想录算法训练营第三十五天 | 01背包问题 二维,01背包问题 一维,416. 分割等和子集
三十五天打卡,背包问题入门,之前做过还是比较容易的。
2024-09-18 16:52:57
543
原创 代码随想录算法训练营第三十四天 | 62.不同路径,63. 不同路径 II,343.整数拆分,96.不同的二叉搜索树
三十四天打卡,今天后两题难一些,第三题分为把数拆成两部分或者多部分,第四题分析头节点的值从1到n - 1。
2024-09-16 22:08:13
478
原创 代码随想录算法训练营第三十二天 | 509. 斐波那契数,70. 爬楼梯,746. 使用最小花费爬楼梯
dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1]。dp[i - 2] 跳到 dp[i] 需要花费 dp[i - 2] + cost[i - 2]。
2024-09-16 17:53:33
600
原创 代码随想录算法训练营第三十一天 | 56. 合并区间,738.单调递增的数字,968.监控二叉树
三十一天继续打卡,除了第二题有个特殊例子没跑通,其他两题都能知道贪心思路并做出来,贪心真是没什么规律呀!
2024-09-15 18:41:48
343
原创 代码随想录算法训练营第三十天 | 452. 用最少数量的箭引爆气球,435. 无重叠区间,763.划分字母区间
第三十天打卡,不知不觉已经一个月了!今天的题都是重叠区间的题目,由于之前做过还有印象,这次都是比较快的做出来了,不过第三题不看提示还真的想不到是重叠区间的题目,三题的思路都是更新重叠区间的边界。
2024-09-14 11:28:29
316
原创 代码随想录算法训练营第二十九天 | 134. 加油站,135. 分发糖果,860.柠檬水找零,406.根据身高重建队列
频繁的插入操作使用链表效率高。
2024-09-13 17:39:02
937
原创 代码随想录算法训练营第二十八天 | 122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II,1005.K次取反后最大化的数组和
二十八天补打卡,贪心算法的思路能想到,但代码比较难实现。
2024-09-12 22:48:16
292
原创 代码随想录算法训练营第二十七天 | 455.分发饼干,376. 摆动序列,53. 最大子序和
二十七天打卡,今天是贪心算法的第一天,贪心算法没有固定解法,摆动序列这一题要固定判断平坡规则。
2024-09-10 19:23:13
473
原创 代码随想录算法训练营第二十五天 | 491.递增子序列,46.全排列,47.全排列 II,332.重新安排行程,51.N皇后,37.解数独,回溯总结
所以回溯法也经常和二叉树遍历,深度优先搜索混在一起,因为这两种方式都是用了递归。回溯法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。
2024-09-09 21:16:48
864
原创 代码随想录算法训练营第二十四天 | 93.复原IP地址,78.子集,90.子集II
二十四天继续打卡,今天的93题有几个难点要多复习,子集和组合的区别是要在树的每个节点上收获结果。
2024-09-06 22:04:53
354
原创 代码随想录算法训练营第二十三天 | 39. 组合总和,40.组合总和II,131.分割回文串
二十三天继续打卡,39题是可以用重复的元素,startIndex在回溯中的值不变即可。40题是对相同的元素组合去重,本质是对树层的去重,画一个树就很容易看出来,131题比较难,用startIndex和i之间的区间判断是不是为回文串。
2024-09-05 20:56:12
331
原创 代码随想录算法训练营第二十二天 | 77. 组合,216.组合总和III,17.电话号码的字母组合
训练营二十二天继续刷题。掌握回溯法的模板后,很容易写出来,但剪枝的细节操作和最后一题的小技巧需要多加注意。
2024-09-05 17:10:05
294
原创 代码随想录算法训练营第二十一天 | 669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树,538.把二叉搜索树转换为累加树,二叉树总结
二叉树的理论基础关于二叉树,你该了解这些!:二叉树的种类、存储方式、遍历方式、定义方式二叉树的遍历方式深度优先遍历二叉树:前中后序递归法:递归三部曲初次亮相二叉树:前中后序迭代法(一):通过栈模拟递归二叉树:前中后序迭代法(二)统一风格广度优先遍历二叉树的层序遍历:通过队列模拟求二叉树的属性二叉树:是否对称递归:后序,比较的是根节点的左子树与右子树是不是相互翻转迭代:使用队列/栈将两个节点顺序放入容器中进行比较二叉树:求最大深度。
2024-09-03 23:08:45
895
原创 代码随想录算法训练营第二十天 | 235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点
二十天继续打卡。插入操作不用改变树的结构,删除操作比较麻烦。
2024-09-02 21:06:22
333
原创 代码随想录算法训练营第十八天 | 530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,236. 二叉树的最近公共祖先
十八天打卡,今天的题技巧性比较强,看答案理解过程,需要多做熟练。
2024-09-01 22:18:03
368
原创 代码随想录算法训练营第十七天 | 654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树
十七天打卡,今天的题比较简单,有昨天做题的基础,654题比较容易,中序遍历下,输出的二叉搜索树节点的数值是有序序列。
2024-09-01 20:55:44
301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅