- 博客(134)
- 收藏
- 关注
原创 【支持二次开发】基于YOLO系列的车辆行人检测 | 含完整源码、数据集、环境配置和训练教程
自动显示目标总数、行人数目、车辆数目,实时计算并显示检测用时,性能优良
2025-03-22 16:08:18
124
原创 训练营总结篇
只要按照训练营的计划去刷题,一个月能刷一百多道题目,虽然一边刷题,一边忘记之前学的知识,但是看着自己AC的题目数量,收获感满满。在缺乏一些基础知识时,就遇到了难题,无从下手,并且学习困难度极大,获得感很小,铺垫完基础知识并做完题目后,一天时间已经过去了,想起一整天只写完了一道题,非常的有挫败感。自学时,任务量的多少都是由自己决定的,有时候觉得,哎,今天不太想刷题了,就不刷了吧,整整一个月过去,题目都没有做多少。 后续我的打算是,按照计划表,再次二刷代码随想录,只有反复做题,才能把知识牢牢的掌握在脑海中。
2025-03-02 20:43:19
204
原创 代码随想录算法【Day61】
通过 动态规划 迭代更新最短路径,每次增加一个中间点k,判断是否能通过k使i到j的距离更短。最终,在n轮迭代后,grid[start][end][n] 存储 start 到 end 的最短路径。若值为 10005(初始化的无穷大),表示两点不可达,输出 -1,否则输出最短路径长度。
2025-03-02 20:14:03
250
原创 代码随想录算法【Day60】
核心思想是 队列优化的 Bellman-Ford 算法,使用队列存储待松弛的节点,并避免重复加入队列,提高效率。每次取出队首元素,对其邻接节点进行松弛操作,若距离更新,则将该节点加入队列,直到队列为空。最终输出最短路径,若无法到达终点,则输出 “unconnected”。
2025-03-02 20:09:25
278
原创 代码随想录算法【Day59】
使用Dijkstra 算法 计算从起点(节点 1)到终点(节点 n)的最短路径。用优先队列(小顶堆) 维护当前未访问的最短路径节点,每次选择距离最短的未访问节点进行更新,直到遍历所有可能路径。如果终点不可达,输出 -1,否则输出最短路径长度。
2025-03-02 16:09:19
240
原创 代码随想录算法【Day58】
通过输入文件依赖关系,构建一个有向图,然后使用广度优先搜索(BFS)来遍历图。每次选择一个入度为零的文件,将其加入结果集,并更新其指向文件的入度。最终,若所有文件都被访问过,则输出拓扑排序结果,否则输出-1。
2025-02-27 21:42:38
237
原创 代码随想录算法【Day57】
Prim算法 是求解加权无向图最小生成树的经典算法。其基本思想是:从图中任意一个节点出发,逐步扩展生成树,每次选择连接树与非树的最小权边。直到所有节点都被加入生成树中,算法结束。
2025-02-27 21:37:42
337
原创 代码随想录算法【Day54】
/ 如果发现根相同,则说明在一个集合,不用两个节点相连直接返回。判断两个节点是否在同一个集合,函数:isSame(int u, int v),就是判断两个节点是不是同一个根节点。将两个节点接入到同一个集合,函数:join(int u, int v),将两个节点连在同一个根节点上。路径压缩:除了根节点其他所有节点都挂载根节点下,这样我们在寻根的时候就很快。寻找根节点,函数:find(int u),也就是判断这个节点的祖先节点是哪个。// 判断 u 和 v是否找到同一个根。// 并查集里寻根的过程。
2025-02-23 20:43:21
298
原创 代码随想录算法【Day52】
从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋,然后再去重新遍历地图 统计此时还剩下的陆地。
2025-02-21 19:35:36
225
原创 代码随想录算法【Day51】
遇到一个没有遍历过的节点陆地,计数器就加一,然后把该节点陆地所能遍历到的陆地都标记上。也就是对该节点进行深搜,找出周围是陆地的节点,标记他们被访问了。//如果节点被访问过,或者这个节点表示的是谁。//将与其连接的陆地都表上true。//如果是没被访问过的陆地,则记入结果。是一个规则的二维数组,所有行的列数都相同,因此。
2025-02-20 19:33:56
699
原创 代码随想录算法【Day50】
i++) { // 遍历节点x链接的所有节点。// 遍历到的节点加入到路径中来。if (graph[x][i] == 1) { // 找到 x链接的节点。// 无论什么路径已经是从0节点出发。// 收集符合条件的路径。// 进入下一层递归。// 回溯,撤销本节点。// 使用邻接矩阵 表示无线图,1 表示 s 与 t 是相连的。if (x == n) { // 找到符合条件的一条路径。// 节点编号从1到n,所以申请 n+1 这么大的数组。// 1节点到终点的路径。// 当前遍历的节点x 到达节点n。
2025-02-19 22:27:30
389
原创 代码随想录算法【Day49】
这道题利用单调栈进行横向求解。对于每一个元素,找到它右边第一个比它大的元素和左边第一个比它大(或者与它相等的元素,当然这种情况可以忽略),最后计算雨水的存储量:((左右两边的高度差)减去(中间元素的高度))乘上中间元素的宽度。为什么要乘中间元素的宽度?因为中间元素可能不止一个。
2025-02-17 22:32:55
432
原创 代码随想录算法【Day47】
若当前遍历的元素没有栈顶元素大,则入栈;若当前遍历的元素比栈顶元素大,则栈顶元素弹出。求当前元素右边第一个比当前元素大的元素,单调栈内的元素(从栈顶到栈底)为单调递增。问题场景:求当前元素左边或者右边第一个比当前元素大或者小的元素。单调栈:保持栈里面的元素是递增的或者递减的。单调栈的作用:存放遍历过的元素的。
2025-02-16 22:09:15
229
原创 代码随想录算法【Day46】
1.dp数组及下标定义:布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。3.初始化:dp[i][j]初始化为false。4.遍历顺序:从上到下,从左到右。
2025-02-15 20:54:03
194
原创 代码随想录算法【Day45】
1.dp数组及下标定义:dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]。2.递推公式:dp[i][j] = dp[i - 1][j];4.遍历顺序:从上到下,从左到右。115.不同的子序列。
2025-02-14 20:34:41
252
原创 代码随想录算法【Day44】
1.dp数组及下标定义:dp[i][j]:长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j]2.递推公式:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);4.遍历顺序:从前向后,从上到下。3.初始化: 统一初始为0。
2025-02-13 20:21:04
175
原创 代码随想录算法【Day43】
2.递推公式:if (nums[i] > nums[j]) dp[i] = max(dp[i], dp[j] + 1);1.dp数组及下标定义:以nums[i]结尾的最长递增子序列的长度。4.遍历顺序:从前到后遍历,i在外层,j在内层。3.初始化: dp[i] = 1。
2025-02-12 20:29:25
307
原创 代码随想录算法【Day40】
1.dp数组及下标定义:dp[i][0]:表示持有该股票得到的最大现金;dp[i][1]:表示不持有该股票得到的最大现金;所以dp[0][1] = 0。4.遍历顺序:从前到后遍历。
2025-02-11 21:09:31
433
原创 代码随想录算法【Day39】
4.遍历顺序:dp[i] 是根据dp[i - 2] 和 dp[i - 1] 推导出来的,那么一定是从前到后遍历!3.初始化:dp[0] 一定是 nums[0],dp[1] = max(nums[0], nums[1]);2.递推公式:dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);1.dp数组及下标定义:dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。
2025-02-08 21:08:03
358
原创 代码随想录算法【Day38】
INT_MAX) { // 如果dp[j - coins[i]]是初始值则跳过。j++) { // 遍历背包。4.遍历顺序:钱币有顺序和无顺序都可以,不影响最终结果,所以内外层循环可以先物品,后背包;2.递推公式:dp[j] = min( dp[j - coins[i]] + 1, dp[j] )如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。
2025-02-07 21:27:54
399
原创 代码随想录算法【Day37】
一维dp数组的01背包必须要先遍历物品,再遍历背包,而完全背包可以先遍历背包,再遍历物品,为什么?无论是列项更新,还是横向更新,只要当前更新的这个格子前面有值,就能完成更新当前格子的操作。将01背包里面讲的倒序遍历,改为正序遍历就是完全背包了。:每个物品可以使用无数次。
2025-02-07 21:06:06
169
原创 代码随想录算法【Day35】
/ 如果装不下这个物品,那么就继承dp[i - 1][j]的值。// dp数组, dp[i][j]代表行李箱空间为j的情况下,从下标为[0, i]的物品里面任意取,能达到的最大价值。j++) { // 遍历行李箱容量。i++) { // 遍历科研物品。// j >= weight[0]的值就初始化为value[0]// j < weight[0]已在上方被初始化为0。// 初始化, 因为需要用到dp[i - 1]的值。
2025-02-03 23:36:08
409
原创 代码随想录算法【Day34】
if (obstacleGrid[m - 1][n - 1] == 1 || obstacleGrid[0][0] == 1) //如果在起点或终点出现了障碍,直接返回0。2.递推公式:dp[i][j] = dp[i - 1][j] + dp[i][j - 1],即当前格子的值等于上面的格子和左边的格子的值的总和。1.dp数组及下标定义:二维dp数组dp[i][j]表示从(0,0)出发,到(i,j)有dp[i][j]条不同的路径。4.遍历顺序:从左到右一层一层往下遍历。第一种:深搜 -> 超时。
2025-01-27 22:06:41
1081
原创 代码随想录算法【Day32】
动态规划基础问题背包问题打家劫舍股票问题子序列问题DP数组的定义以及下标的含义递推公式DP数组如何初始化遍历顺序打印DP数组。
2025-01-25 17:46:42
876
原创 代码随想录算法【Day31】
合并区间的时候,为什么是“ result.back()[1] = max(result.back()[1], intervals[i][1]);”,而不是“ result.back()[1] = intervals[i][1]”题目要求返回满足≤n且最大的数字,从后往前遍历,如果当前数字小于上一个数字,就让上一个数字减1,然后让当前数字变为9,想法比较巧妙。i--){ //i = 0的时候呢?事实上,当发现前一个数字大于后一个数字时,将前一个数字减1,并记录当前位置为flag。从flag位置开始,将后续。
2025-01-24 17:13:44
828
原创 代码随想录算法【Day30】
有一个误区,上一道题并不是记录的重叠区间的个数,上一道题只是对重叠区间进行整理,例如两个重叠区间,将他们整理成右边界一样的区间,然后记录一次个数;都属于重叠区间的题,这类题目先按照某一边界进行排序,利用“右边界”的最小值判断区间是否重叠(具体看代码进行体会)如果气球重叠了,就让重叠气球的右边边界都相同,在重叠气球的右边边界的最小值之间的区间一定需要一个弓箭。// 注意这里从0开始,因为是记录重叠区间。
2025-01-23 16:56:26
754
原创 代码随想录算法【Day29】
此题有两个维度,和135.分发糖果有点类似在做这类题目时,一定要先确定一个维度,再确定另一个维度若把两个维度一起考虑,一定会顾此失彼。
2025-01-22 16:36:32
710
原创 代码随想录算法【Day28】
相当于(prices[3] - prices[2]) + (prices[2] - prices[1]) + (prices[1] - prices[0])。假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。关键在于可跳的覆盖范围,将问题转换成,跳跃覆盖范围究竟可不可以覆盖到终点。所以把利润分解为每天为单位的维度,只收集每天的正利润就可以了。最终利润是可以分解的。
2025-01-21 18:13:06
272
原创 代码随想录算法【Day27】
代码是外循环胃口,内循环饼干,而调换内外循环后,使外循环饼干,内循环胃口,代码不成立?局部最优:找到一个最大的饼干喂胃口最大的孩子。//先遍历胃口,再遍历饼干。本质:局部最优推导全局最优。
2025-01-20 20:52:47
290
原创 代码随想录算法【Day22】
有递归就会有回溯,递归函数的下面就是回溯的逻辑,有时回溯就是指递归,没有完全都是回溯的函数。return //结束当前函数调用。//撤销处理结点的情况。void backtracking(参数){这些问题用暴力法for嵌套循环是解决不了的。所有的回溯法都可以抽象成一个树形结构。切割问题 字符串有几种切割方式。for(集合元素){回溯搜索本质上是暴力搜索。棋盘问题 N皇后,解数独。子集问题 列出所有子集。
2025-01-16 21:52:04
252
原创 代码随想录算法【Day20】
虽然有多种插入方式,导致插入后的结构不是唯一的,但是无论插入什么值,我们都可以在叶子结点找到相应的插入位置。理解只要当前节点的值在p和q节点的值的中间,那这个值就是最近的公共祖先,绝对不是次近的,这个题就好做了。////当前节点的值小于p和q节点的值,则遍历当前节点的右子树。//当前节点的值大于p和q节点的值,则遍历当前节点的左子树。二叉搜索树本身是有序的,所以不涉及到前中后序的遍历。//先判断当前节点为空的情况。使用while循环进行迭代。
2025-01-13 17:05:07
913
原创 代码随想录算法【Day18】
题目虽然说,要去找任意两个节点值的最小差值,但是因为这个是二叉搜索树,最小差值只会存在两个相邻节点之间,所以我们着手于相邻节点就行了。通过中序遍历,把二叉搜索树转换成有序数组,然后对数组进行遍历,计算相邻元素的最小差值。
2025-01-12 20:44:24
288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人