算法
文章平均质量分 81
算法
山脚ice
这个作者很懒,什么都没留下…
展开
-
【随想录】Day52—第九章 动态规划part13
【代码】【随想录】Day52—第九章 动态规划part13。原创 2024-05-21 15:41:51 · 263 阅读 · 0 评论 -
【随想录】Day50—第九章 动态规划part12
【代码】【随想录】Day50—第九章 动态规划part12。原创 2024-05-20 14:09:48 · 318 阅读 · 0 评论 -
【随想录】Day49—第九章 动态规划part11
【代码】【随想录】Day49—第九章 动态规划part11。原创 2024-05-16 10:10:45 · 507 阅读 · 0 评论 -
【随想录】Day48—第九章 动态规划part10
【代码】【随想录】Day48—第九章 动态规划part10。原创 2024-05-14 18:04:10 · 588 阅读 · 0 评论 -
【随想录】Day47—第九章 动态规划part09
【代码】【随想录】Day47—第九章 动态规划part09。原创 2024-05-14 16:55:00 · 796 阅读 · 0 评论 -
【随想录】Day46—第九章 动态规划part08
主要常见的背包问题有①01背包②完全背包③多重背包这篇背包问题总结篇是对背包问题的高度概括,讲最关键的两部:递推公式和遍历顺序,结合力扣上的题目全都抽象出来了。而且每一个点,我都给出了对应的力扣题目。最后如果你想了解多重背包,可以看这篇动态规划:关于多重背包,你该了解这些!,力扣上还没有多重背包的题目,也不是面试考察的重点。如果把我本篇总结出来的内容都掌握的话,可以说对背包问题理解的就很深刻了,用来对付面试中的背包问题绰绰有余!原创 2024-05-13 21:01:23 · 682 阅读 · 0 评论 -
【随想录】Day45—第九章 动态规划part07
【代码】【随想录】Day45—第九章 动态规划part07。原创 2024-05-12 17:23:15 · 692 阅读 · 0 评论 -
【随想录】Day44—第九章 动态规划part06
01背包的核心代码i++) { // 遍历物品j--) { // 遍历背包容量在完全背包中如果希望物品使用无限次,此时需要修改遍历的顺序,正序遍历即可实现每个物品使用无限次。我们知道 01背包 内嵌的循环是从大到小遍历,为了保证每个物品仅被添加一次。而完全背包的物品是可以添加多次的,所以要从小到大去遍历,即:// 先遍历物品,再遍历背包i++) { // 遍历物品j++) { // 遍历背包容量dp状态图如下:相信很多同学看网上的文章,关于完全背包介绍基本就到为止了。原创 2024-05-11 18:22:52 · 953 阅读 · 0 评论 -
【随想录】Day43—第九章 动态规划part05
1049. 最后一块石头的重量 II// 定义 dp 数组// dp 数组含义,为 j 容量的最大收益sum+=i;// 2. 递推公式 dp[j] = Math.max(dp[j],dp[j-weight[i]]+value[i]);// 3. 初始化dp[0] = 0;// 4. 遍历顺序// i 从 0 遍历到 n// j 从 target 遍历到 weight[i]i < n;i++){j--){原创 2024-05-09 16:00:52 · 547 阅读 · 0 评论 -
【随想录】Day42—第九章 动态规划part04
其实从递归公式: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);可以看出dp[i][j] 是由左上方数值推导出来了,那么 其他下标初始为什么数值都可以,因为都会被覆盖。数组分割为背包问题,比如求 [1,5,11,5] 数组中是否能分为两个和为 11 的数组。但只不过一开始就统一把dp数组统一初始为0,更方便一些。的物品的时候,各个容量的背包所能存放的最大价值。,因为背包容量放足够放编号0物品。的时候就一定要初始化。原创 2024-05-08 16:18:42 · 686 阅读 · 0 评论 -
【随想录】Day41—第九章 动态规划part03
【代码】【随想录】Day41—第九章 动态规划part03。原创 2024-05-07 15:24:54 · 590 阅读 · 0 评论 -
【随想录】Day39—第九章 动态规划part02
本题区分于不同路径的情况在于,本题增加了障碍物的情况。机器人每次只能向下或者向右移动一步。原创 2024-05-07 10:43:05 · 323 阅读 · 0 评论 -
【随想录】Day38—第九章 动态规划part01
爬楼梯每次只能走 1 或者 2 步,因此当前楼梯到达的方式取决于。爬楼梯每次只能走 1 或者 2。原创 2024-05-07 09:59:59 · 627 阅读 · 0 评论 -
【随想录】Day37—第八章 贪心算法 part06
【代码】【随想录】Day37—第八章 贪心算法 part06。原创 2024-05-06 23:00:22 · 472 阅读 · 0 评论 -
【随想录】Day36—第八章 贪心算法 part05
实际上这个与弓箭射气球所求的结果是相反的,弓箭射气球实际上求的是无重叠区间个数,因此本题目根据弓箭射气球的结果 使用 intervals 的长度减去 无重叠区间个数所得到的就是所求结果:即重叠区间个数。贪心思路类似于,最少的弓箭射气球的场景。类似于:弓箭引爆气球。原创 2024-04-28 16:05:03 · 1008 阅读 · 0 评论 -
【随想录】Day35—第八章 贪心算法 part04
【代码】【随想录】Day35—第八章 贪心算法 part04。原创 2024-04-27 11:51:08 · 794 阅读 · 0 评论 -
【随想录】Day34—第八章 贪心算法 part03
每到一个站点后,此时是有补充有消耗的,关注点:当前还剩余多少油。原创 2024-04-26 11:58:37 · 947 阅读 · 0 评论 -
【随想录】Day32—第八章 贪心算法 part02
【代码】【随想录】Day32—第八章 贪心算法 part02。原创 2024-04-25 14:01:10 · 619 阅读 · 1 评论 -
【随想录】Day31—第八章 贪心算法 part01
【代码】【随想录】Day31—第八章 贪心算法 part01。原创 2024-04-24 12:27:37 · 529 阅读 · 0 评论 -
【随想录】Day30—第七章 回溯算法part06
根据上述思路使用以下数据结构。原创 2024-04-23 22:07:59 · 941 阅读 · 0 评论 -
【随想录】Day29—第七章 回溯算法part05
与排列的去重方式类似,唯一不同的点是此时 数组中有重复出现的元素,要在排列的基础上 进行。数组对数组进行 排序 ,而本题目每个元素之间的递增顺序是不能通过排序来打乱的。本题区分于 子集II 的区别在于,子集II的去重是通过,原创 2024-04-23 16:35:54 · 501 阅读 · 0 评论 -
【随想录】Day28—第七章 回溯算法part04
子集II 与 子集 的区别在于,数组中存在重复元素,涉及重复元素的去重逻辑。startIndex 作用在于,告诉下一层递归从哪里开始取数。获取子串 ——> 判断子串是否合法 ——> 收集结果。本题思路属于切割问题,原创 2024-04-21 15:28:01 · 568 阅读 · 0 评论 -
【随想录】Day27—第七章 回溯算法part03
本题区别于 组合总和 的点在于,此时要对重复的元素进行去重的逻辑。该回溯的方法实际上是对字符串进行分割,回溯的目标是找分割点。原创 2024-04-19 13:23:28 · 624 阅读 · 0 评论 -
面试官:归并排序了解吗?手撕一个我看看?
【代码】面试官:归并排序了解吗?手撕一个我看看?原创 2024-04-18 21:50:45 · 367 阅读 · 0 评论 -
【随想录】Day25—第七章 回溯算法part02
【代码】【随想录】Day25—第七章 回溯算法part02。原创 2024-04-18 16:10:02 · 331 阅读 · 0 评论 -
【随想录】Day24—第七章 回溯算法part01
【代码】【随想录】Day24—第七章 回溯算法part01。原创 2024-04-18 13:55:14 · 276 阅读 · 0 评论 -
【随想录】Day23—第六章 二叉树part09
改题目的思路类似于删除 BST 中的结点的思路。借助双指针的思想来实现。原创 2024-04-17 21:36:54 · 334 阅读 · 0 评论 -
【随想录】Day22—第六章 二叉树part08
与二叉树的最近公共祖先思路一致。删除结点有很多情况需要考虑。右结点的最左下的结点。原创 2024-04-16 12:13:40 · 880 阅读 · 0 评论 -
【随想录】Day21—第六章 二叉树part07
中我们就使用了pre指针和cur指针的技巧,这次又用上了。中序遍历,将遍历结果收集到数组中。使用递归实现二叉搜索树中的众数。原创 2024-04-15 14:58:33 · 819 阅读 · 0 评论 -
【随想录】Day20—第六章 二叉树 part06
先中序遍历,将遍历结果转为数组,之后判断数组中的元素是否满足升序即可。每次找到数组中的最大值,来构造一个结点,之后递归构造左子树和右子树。原创 2024-04-14 22:47:43 · 395 阅读 · 0 评论 -
【随想录】Day18—第六章 二叉树 part05
此题目和路径总和类似,区别在于收集结果的方式不同。本题需要输出的是路径,则收集每次递归的路径即可,满足条件再收集到结果集中。同时本题存在回溯的逻辑。原创 2024-04-12 16:39:26 · 802 阅读 · 0 评论 -
【随想录】Day17—第六章 二叉树part04
【代码】【随想录】Day17—第六章 二叉树part04。原创 2024-04-11 19:41:30 · 455 阅读 · 0 评论 -
【LeetCode】手撕系列—82. 删除排序链表中的重复元素 II
【代码】【LeetCode】手撕系列—82. 删除排序链表中的重复元素 II。原创 2024-04-10 20:08:05 · 216 阅读 · 0 评论 -
【LeetCode】手撕系列—92. 反转链表 II
【代码】【LeetCode】手撕系列—92. 反转链表 II。原创 2024-04-10 19:38:09 · 268 阅读 · 0 评论 -
【LeetCode】手撕系列—912. 排序数组_快排
【代码】【LeetCode】手撕系列—912. 排序数组_快排。原创 2024-04-10 18:37:08 · 432 阅读 · 0 评论 -
【随想录】Day16—第六章 二叉树part03
【代码】【随想录】Day16—第六章 二叉树part03。原创 2024-04-10 10:56:54 · 223 阅读 · 0 评论 -
【随想录】Day15—第六章 二叉树part02
【代码】【随想录】Day15—第六章 二叉树part01。原创 2024-04-09 12:05:20 · 330 阅读 · 0 评论 -
【随想录】Day14—第六章 二叉树part01
因为借助了栈实现迭代遍历,因此 前序的规则是 中、左、右,则入栈的顺序为 中、右、左。中序遍历,即 左、右。原创 2024-04-08 23:24:33 · 250 阅读 · 0 评论 -
【随想录】Day13—第五章 栈与队列part03
① 删除如果当前栈非空、被删元素值等于队列头元素,此时直接弹出②加入此时加入元素,如果值大于 队列头元素,此时将队列清空,再加入该值③返回队列头元素// poll,删if(!原创 2024-04-07 18:25:46 · 485 阅读 · 0 评论 -
【随想录】Day11—第五章 栈与队列part02
【代码】【随想录】Day11—第五章 栈与队列part02。原创 2024-04-06 17:18:40 · 279 阅读 · 0 评论