自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法训练营day72

【代码】算法训练营day72。

2024-07-16 10:17:34 232 1

原创 算法训练营day71

最小生成树-Kruskal 算法。最小生成树-prim算法。

2024-07-08 22:17:31 233

原创 算法训练营day70

三种情况:入度为2的时候,有两种情况一种是删哪个都行,另一种是删掉之后可能出现环,这时候就要判断删除这个边,是否成环了。如果没有入度为2,就是成环,这个从前向后遍历,通过查并集删除删除连通的即可。

2024-07-06 15:43:38 245

原创 算法训练营day69

【代码】算法训练营day69。

2024-07-05 20:52:05 310

原创 算法训练营day67

【代码】算法训练营day67。

2024-07-03 22:39:50 328

原创 算法训练营day66-孤岛总面积-沉没孤岛-水流问题-建造最大岛屿

【代码】算法训练营day66-孤岛总面积-沉没孤岛-水流问题-建造最大岛屿。

2024-06-21 22:52:00 324

原创 算法训练营day65-岛屿连同问题

【代码】算法训练营day65-岛屿连同问题。

2024-06-20 19:47:41 313

原创 算法训练营64-图论-深度优先优先搜索(dfs)-广度优先搜索(bfs)

【代码】算法训练营65-图论-深度优先优先搜索(dfs)-广度优先搜索(bfs)

2024-06-19 22:14:02 358

原创 算法训练营day63

【代码】算法训练营day63。

2024-06-18 11:22:50 186

原创 算法训练营补签day25

【代码】算法训练营补签day25。

2024-06-17 17:48:57 113

原创 算法训练营day62

在上一题的基础上加了一个,map确定 数组num1里元素最右边的值。真 暴力解法,但会超时。

2024-06-17 13:08:35 210

原创 算法训练营day60

【代码】算法训练营day60。

2024-06-16 22:47:03 253

原创 算法训练营day59

这里的初始化第一列为1,表示t是空字符串 在s的子序列中有1种情况。

2024-06-14 22:23:56 194 1

原创 算法训练营day24

可以用二叉树最近公共祖先来做。

2024-06-13 21:47:04 326

原创 算法训练营day58

动态规划,其实和之前最长公共子序列一样,只不过最后就是比较以下dp数组的值是否和字符串s的长度相同。

2024-06-13 15:25:25 296

原创 算法训练营day23补签

在递归里操作,主要就是更新maxcount 然后要把reslut也更新。

2024-06-12 15:53:44 239 1

原创 算法训练题day57

不太一样,如果是连续的那代码就一样了,这里的区别就在于如果两个字符不相等,应该取max(dp[i - 1][j], dp[i][j - 1])这道题其实可以转换成寻找两个数组中不连续的子序列的最大长度,就和上题一样了。其实动态规划和贪心的本质上都是一样的。这道题的子序列是不连续的,所以很。

2024-06-12 11:55:50 171

原创 算法训练营day56

【代码】算法训练营day56。

2024-06-11 22:17:03 284

原创 算法训练营day53

这道题就是在 买卖股票Ⅱ上多了一个手续费而已。

2024-06-11 10:05:56 235

原创 算法训练营day52

【代码】算法训练营day52。

2024-06-10 21:47:27 458 1

原创 算法训练营day51

要搞明白dp数组的含义, dp数组包含两种情况,持有股票,这个可以持有之前的也可以持有今天的;不持有股票,可以是之前就不持有,也可以今天卖出。

2024-06-10 11:47:27 445

原创 算法训练营day50

相比于1来说就是将环形分解成两种情况,考虑首元素 考虑尾元素。

2024-06-08 21:27:09 273

原创 day49

【代码】day49。

2024-06-04 20:38:26 142

原创 算法训练营day48

当时爬楼梯只有 1,2两种情况所以可以用斐波那契数列做,当上楼的阶梯数为n时,可以抽象成完全背包问题,这里题目要求时排列,所以应该是先遍历背包,再遍历物品,这样 可以包含 1、2 和 2、 1。这里主要是物品没想白怎么表示,想的是根据n 把能取到的完全平方数列出来,再进行遍历,但是解法里的遍历就很巧妙。初始化没有想到,递推公式想到了。

2024-06-04 17:10:29 419

原创 算法训练营day46

完全背包和01背包的区别就是是否可以重复使用,在代码上就是 j 的 for 循环从前向后遍历还是从后向前遍历。先物品再背包是组合,先背包再物品是排列。

2024-06-01 17:07:23 257

原创 算法训练营day45

这道题主要的思路是把题目转换成分成两份,然后转换成一个重量为 sum / 2 的背包去装石头,尽可能将背包装的最大,那么最后最小省的石头就是 (sum - dp[j]) - dp[j] 前边是剩下的石头,后边是能装的最大的石头。

2024-05-31 13:59:51 303

原创 算法训练营day44

题目1:二维dp数组求 01 背包。题目2:一维dp数组求背包\。

2024-05-30 22:24:58 190

原创 算法训练营day43

【代码】算法训练营day43。

2024-05-29 19:27:08 372

原创 算法训练营day42

【代码】算法训练营day42。

2024-05-28 15:36:02 296

原创 算法训练营day41

动态规划理论基础(主要就是确定动态规划的几个步骤)

2024-05-27 20:08:39 522

原创 算法训练day39

【代码】算法训练day39。

2024-05-25 19:34:57 251

原创 补签22day

二叉搜索树定义:左孩子小于节点,右孩子大于节点,且左右子树也符合 该规律。真的简单啊,其实整体思路没错,只是乱没想清楚。自己AC过了,确实对递归理解深入了一些。

2024-05-24 23:37:44 148

原创 算法训练营38

这道题其实跟上面那个像,我写的代码是遇到重复的就删除,不过没有AC过。

2024-05-24 15:42:37 116

原创 算法训练营day37

这道题思路确实不难,想明白了就是固定思路,五块就收,十块收了找五块,二十这里注意,可以找 10 + 5 也可以 找 5 + 5 + 5 ,如果能都能找那就返回true, 否则就是false ,我这里用的是数组记录,其实用int 类型计数就可以了,ti。这里根据身高排序,有大到小,然后如果身高一样就 根据 k 由小到大,然后根据k进行插入相应的位置。

2024-05-23 17:08:58 180

原创 算法训练营36

代码随想录上的思路,让加油 - 耗油,如果所有的总和都<0 那肯定跑不完,然后用一个currsum 统计从 0 开始到当前i 的 剩余油之和,如果 < 0 说明 起始位置肯定在为 i + 1,然后currsum 置零,在重复上面操作,最后返回 start 就行。这道题从两边开始算就好,先从左向右只考虑右边小孩比左边小孩大,然后从右向左考虑,最后取两次糖果数组里大的,然后最后求和即可。根据通过情况反复挑战最终AC过了,这里和原来的差别是他的排序是用绝对值排序的,这样的思路会很简单。

2024-05-22 23:16:34 335

原创 算法训练营day35

贪心算法的思路是根据每个元素看能覆盖的大小,然后更新,更新的时候要取大的覆盖,如果能够覆盖最后的元素就返回true。贪心算法思路很简单,就是把每一天的利润都算出来,然后把整的加起来就是结果。

2024-05-22 21:18:35 335 2

原创 算法训练营day34

贪心算法的思路是,如果当前的和为负数的,就舍去这个和然后重新进行sum累加,同时用reslut记录局部最优,就是每次累加判断sum > max 如果大于就更新max。把大的饼干分给胃口最大的。暴力解法会超时,代码如下。

2024-05-22 16:46:10 222 1

原创 day32算法训练营

剪枝:每次sum > target就return 这已经算是剪枝了,但是剪枝不够彻底,因为约束了k个,所以也可以再for循环的条件是进行剪枝, i < = n - (k - path.size() ) + 1。这个去重是要对树层里的相同元素剪枝,树枝里不进行剪枝,剪枝可以通过比下标进行也可以定义一个数组 这里是 如果used[i - 1] = true证明是树枝,这时候可以选取相同的元素,如果used[i - 1]=false 证明是树层,这时候就要 continue剪枝了。

2024-05-19 19:07:56 566

原创 算法训练营day31

这道题主要就是注意 for 循环i从0开始,然后就是需要用used数组存储元素使用情况,然后used和path都要回溯。这里不能对元素进行排序,所以去重需要用一个 set来进行去重。

2024-05-18 20:31:29 108

原创 补签打卡day21

这个我还用最开始的思路,直接记录所有路径,然后把复合的再加入,但是这个相较于代码随想录上的算法,会多for循环去判断,可以直接在递归函数里加入 int sum 然后递减,如果 sum == 0证明找到了路径,就加入到结果里。递归算法的思路就是去找最大深度,然后深度变化之后就进行值得改变,因为顺序是按左右来的所以不用考虑最左边得值到底是深度最大得左子叶还是右子叶。代码随想录里的解法:通过判断叶子节点时sum 是否减到 0 同时,如果递归的时候路径之和== target 就一路返回true.

2024-05-16 21:28:22 328

空空如也

空空如也

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

TA关注的人

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