刷题笔记
文章平均质量分 92
这里面都是跟着B站卡尔老师的代码随想录学习写的博客,有想看视频的小伙伴可以B站搜索程序员卡尔
花花花1
感谢您抽出时间阅读或观看这个简介,制作不易,感谢关注!如果您有任何问题或建议,请随时与我联系。谢谢!v:HHHHHH_1223
展开
-
从理论到实践:01背包问题在分割等和子集中的应用(力扣416)
通过这篇博客,读者可以清晰地了解如何结合01背包问题在实际问题中的使用,本题的关键在于想到是否可以从输入数组中挑选出一些正整数,使得这些数的和 等于 整个数组元素的和的一半,再抽象成一个01背包问题。希望本文能够帮助读者更好地理解和应用动态规划算法在01背包问题中的使用,如果有任何疑问或者建议,欢迎留言讨论🌹。原创 2024-04-10 20:58:37 · 1479 阅读 · 12 评论 -
从二维数组到一维数组——探索01背包问题的动态规划优化
通过这篇博客,读者可以清晰地了解如何通过优化空间复杂度,将01背包问题的动态规划解法从二维数组降维到一维数组,并且可以对比二者在性能上的差异,从而更好地掌握这一知识点。希望本文能够帮助读者更好地理解和应用动态规划算法在01背包问题中的使用,如果有任何疑问或者建议,欢迎留言讨论🌹。原创 2024-04-09 22:57:32 · 1604 阅读 · 12 评论 -
一文搞懂从爬楼梯到最小花费(力扣70,746)
动态规划算法(Dynamic Programming)是一种解决多阶段决策过程最优化问题的方法。它将问题分解为相互重叠的子问题,并通过解决子问题来解决整个问题。这种方法通常用于具有重叠子问题和最优子结构性质的问题。动态规划的基本思想是将原问题分解为相互重叠的子问题,并在解决这些子问题时进行存储,以避免重复计算。通过这种方式,可以大大减少计算量,提高算法效率。动态规划算法通常涉及两个关键步骤:定义状态和状态转移方程。定义状态: 确定问题中的状态变量,并定义状态之间的关系。原创 2024-04-08 21:20:49 · 1704 阅读 · 12 评论 -
摆动序列(力扣376)
以上就是针对这道题的刷题笔记,用到了贪心算法从单调坡度上删除中间的结点保留两端的局部最优解推导出整个序列具有最多的局部峰值,达到最长摆动序列,希望这篇题解能够帮助到你解决这个问题。如果有任何疑问或者建议,欢迎留言讨论🌹。原创 2024-04-06 20:46:36 · 916 阅读 · 5 评论 -
分发饼干(力扣455)
贪心算法的核心思想是每一步都选择当前状态下的最佳解决方案,而不考虑之后步骤可能带来的影响。这种“贪心”策略意味着在每个阶段做出局部最优的选择,希望最终达到全局最优。贪心算法并不总是能够找到问题的最优解,但在某些情况下却能得到接近最优解的结果。原创 2024-04-03 19:17:00 · 1400 阅读 · 6 评论 -
子集与全排列问题(力扣78,90,46,47)
通过这三篇博客,我们可以看到回溯算法在解决组合、排列等问题时的应用。其基本思想是通过递归和回溯来探索所有可能的解空间,并及时剪枝以避免重复计算,从而高效地求解问题。可以总结出如下回溯的套路:去重:先对数组进行排序再判断同一层是否使用过相同元素排列和组合都是在叶子结点收集结果集,而子集则是在树的每一个结点都要进行收集结果集希望本文对你理解和解决组合总和问题有所帮助!🌹。原创 2024-04-02 21:56:17 · 1034 阅读 · 3 评论 -
探索组合总和问题(力扣39,40,216)
以上就是针对这道题的刷题笔记,通过使用回溯法,我们可以有效地解决组合总和问题。对于每个问题,我们都需要仔细考虑题目要求,并编写相应的回溯函数来搜索所有可能的解。在编写代码时,要注意避免重复计算和重复组合的情况,以提高算法的效率。希望本文对你理解和解决组合总和问题有所帮助!🌹。原创 2024-04-01 20:57:59 · 1484 阅读 · 5 评论 -
组合回溯问题(力扣77)
以上就是针对这道题的刷题笔记,讲解了回溯算法的使用方法,回溯法解决的问题都可以抽象为树形结构,因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的树的深度,递归就要有终止条件,所以必然是一棵高度有限的树(N叉树)原创 2024-03-31 21:00:09 · 1255 阅读 · 4 评论 -
删除二叉搜索树中的节点(力扣450)
以上就是对力扣第450题的解题思路和代码实现,需要注意的是最关键也是最复杂的第五种情况(删除一个左右孩子都不为空的节点)。删除结点操作是通过递归的返回值来实现的,在递归的上一层接住我们递归得到的子树返回值。希望本文对你理解和解决这道题有所帮助!🌹原创 2024-03-30 18:06:52 · 1158 阅读 · 0 评论 -
链表中两两交换结点(力扣24)
这就是对力扣第24题的解题思路和代码实现,需要注意的时如果想对当前元素进行操作,必须要让指针指在前一个元素才能.next操作的了当前元素。希望本文对你理解和解决这道题有所帮助!原创 2024-03-29 20:44:54 · 454 阅读 · 1 评论 -
根据后序(前序)和中序构造二叉树(力扣105,106)
以上就是针对这道题的刷题笔记,讲解了如何通过前序(后序)和中序构建唯一的一棵树的具体流程与Java代码分析,需要对数组进行分割处理,还用到了哈希表HashMap存储键值对的数据。原创 2024-03-24 21:00:24 · 1318 阅读 · 1 评论 -
二叉树所有路径求解(力扣257)
以上就是针对这道题的刷题笔记,讲解了怎么用递归以及回溯求解二叉树的所有路径问题,用前序遍历遇到叶子结点时则回溯到上面去重新遍历,还用到了stringbuilder来拼接字符串。原创 2024-03-23 21:00:12 · 1116 阅读 · 1 评论 -
二叉树的深度优先遍历(力扣94,144,145)
讲解了二叉树DFS的两种方式,递归和迭代,递归三种都是类似的,而迭代中序和其它两个不太相同。原创 2024-03-18 21:31:50 · 1228 阅读 · 0 评论 -
二叉树的广度优先遍历(力扣102)
二叉树BFS需要借助一个队列来辅助一层一层的遍历,每一层数据都是一个一维数组,那整个树就是一个二维数组。原创 2024-03-17 21:27:25 · 545 阅读 · 0 评论