自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 代码随想录算法【Day56】

从前向后遍历每一条边(因为优先让前面的边连上),边的两个节点如果不在同一个集合,就加入集合(即:同一个根节点)。

2025-02-25 20:21:48 252

原创 代码随想录算法【Day54】

/ 如果发现根相同,则说明在一个集合,不用两个节点相连直接返回。判断两个节点是否在同一个集合,函数:isSame(int u, int v),就是判断两个节点是不是同一个根节点。将两个节点接入到同一个集合,函数:join(int u, int v),将两个节点连在同一个根节点上。路径压缩:除了根节点其他所有节点都挂载根节点下,这样我们在寻根的时候就很快。寻找根节点,函数:find(int u),也就是判断这个节点的祖先节点是哪个。// 判断 u 和 v是否找到同一个根。// 并查集里寻根的过程。

2025-02-23 20:43:21 298

原创 代码随想录算法【Day53】

【代码】代码随想录算法【Day53】

2025-02-22 21:07:25 72

原创 代码随想录算法【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

原创 代码随想录算法【Day42】

【代码】代码随想录算法【Day41】

2025-02-11 21:12:00 112

原创 代码随想录算法【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

原创 代码随想录算法【Day36】

1049. 最后一块石头的重量 II

2025-02-04 22:19:59 467

原创 代码随想录算法【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

原创 代码随想录算法【Day25】

【代码】代码随想录算法【Day25】

2025-01-19 20:28:25 99

原创 代码随想录算法【Day24】

【代码】代码随想录算法【Day24】

2025-01-18 22:05:22 115

原创 代码随想录算法【Day23】

【代码】代码随想录算法【Day23】

2025-01-17 23:19:46 164

原创 代码随想录算法【Day22】

有递归就会有回溯,递归函数的下面就是回溯的逻辑,有时回溯就是指递归,没有完全都是回溯的函数。return //结束当前函数调用。//撤销处理结点的情况。void backtracking(参数){这些问题用暴力法for嵌套循环是解决不了的。所有的回溯法都可以抽象成一个树形结构。切割问题 字符串有几种切割方式。for(集合元素){回溯搜索本质上是暴力搜索。棋盘问题 N皇后,解数独。子集问题 列出所有子集。

2025-01-16 21:52:04 252

原创 代码随想录算法【Day21】

思路有点类似二分法private:public:

2025-01-15 11:49:43 198

原创 代码随想录算法【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关注的人

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