- 博客(58)
- 收藏
- 关注
原创 代码随想录算法训练营第五十九天 _ 单调栈_42. 接雨水、84.柱状图中最大的矩形。
是一种特殊的栈数据结构,在栈的基础上增加了一些特定的性质。它主要用于解决一类与元素大小和顺序有关的问题。
2023-12-21 10:54:43 431
原创 代码随想录算法训练营第五十八天 _ 单调栈_155. 最小栈、739.每日温度、496. 下一个更大元素 I、503.下一个更大元素II。
是一种特殊的栈数据结构,在栈的基础上增加了一些特定的性质。它主要用于解决一类与元素大小和顺序有关的问题。
2023-12-20 16:20:22 450
原创 代码随想录算法训练营第五十七天 _ 动态规划_647.回文子串、5. 最长回文子串、516.最长回文子序列。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-19 11:04:22 474
原创 代码随想录算法训练营第五十六天 _ 动态规划_583.两个字符串的删除操作、72.编辑距离、编辑距离总结。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-18 20:26:21 478 1
原创 代码随想录算法训练营第五十五天 _ 动态规划_392. 判断子序列、115.不同的子序列。
所以共计有4种。正好可以对应递推公式。③ dp数组如何初始化 : 第一列为1,第一行除dp[0][0]外都为0。因为列长是目标字符串长度,第一列为空字符,所以第一列为1。④ 确定遍历顺序 : 从上到下,从左到右。
2023-12-18 11:03:43 370
原创 贪心算法总结
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。这么说有点抽象,来举一个例子: 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。引用自代码随想录。
2023-12-15 11:30:19 624
原创 代码随想录算法训练营第五十三天 _ 动态规划_1143.最长公共子序列、1035.不相交的线、53.最大子序和、392. 判断子序列。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-15 10:36:39 950
原创 代码随想录算法训练营第五十二天 _ 动态规划_300. 最长递增子序列、674.最长连续递增序列、718.最长重复子数组。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-14 11:28:06 384
原创 代码随想录算法训练营第五十天 _ 动态规划_188.买卖股票最佳时机4、309.买卖股票的最佳时机含冷冻期、714.买卖股票的最佳时机含手续费。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-11 15:36:02 1026
原创 代码随想录算法训练营第四十九天 _ 动态规划_121.买卖股票的最佳时机1、122.买卖股票的最佳时机II、123.买卖股票最佳时机III。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-11 10:42:33 837
原创 代码随想录算法训练营第四十六天 _ 动态规划_背包问题总结。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-11 09:14:36 416
原创 代码随想录算法训练营第四十八天 _ 动态规划_198.打家劫舍、213.打家劫舍II、337.打家劫舍 III。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-08 17:05:39 489
原创 代码随想录算法训练营第四十五天 _ 动态规划_ 70. 爬楼梯、322.零钱兑换、279.完全平方数、139.单词拆分。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-07 16:19:19 516
原创 代码随想录算法训练营第四十四天 _ 动态规划_完全背包问题、518.零钱兑换II、377.组合总和IV。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-06 19:21:10 1007
原创 代码随想录算法训练营第四十三天 _ 动态规划_1049.最后一块石头的重量II、494.目标和、474.一和零。
该题目可以等效为一个重量和价值相等的01背包问题,所以使用一维的数组就可。本题中不好理解的点:为什么 sum - 2 * dp[target] 就一定是我们要求的结果?虽然事实告诉我就是如此。target作为数组重量和的平均值,(重量和价值相等),此时dp[target]的值(最大价值)一定也小于等于数组重量和的平均值(最接近平均值的值)。动态规划五步曲:① 确定dp[j]的含义 : 容量为j的背包的最大价值。
2023-12-04 10:57:26 414
原创 代码随想录算法训练营第四十二天 _ 动态规划_01背包问题、416.分割等和子集。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-04 09:23:05 1576
原创 代码随想录算法训练营第四十一天 _ 动态规划_343. 整数拆分、96.不同的二叉搜索树、01背包问题。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-03 15:18:26 1307
原创 代码随想录算法训练营第三十九天 _ 动态规划_62.不同路径、63. 不同路径 II。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-12-01 10:08:25 510
原创 代码随想录算法训练营第三十八天 _ 动态规划_509.斐波那契数、70.爬楼梯、746. 使用最小花费爬楼梯。
动态规划五部曲:① 确定dp[i]的含义② 求递推公式③ dp数组如何初始化④ 确定遍历顺序⑤ 打印递归数组 ---- 调试。
2023-11-30 10:46:45 419
原创 代码随想录算法训练营第三十七天 _ 贪心算法_738.单调自增的数字、968.监督二叉树
【代码】代码随想录算法训练营第三十七天 _ 贪心算法_738.单调自增的数字、968.监督二叉树。
2023-11-29 11:19:39 864
原创 代码随想录算法训练营第三十六天 _ 贪心算法_435.无重叠区间、763.划分字母区间、56.合并区间。
【代码】代码随想录算法训练营第三十六天 _ 贪心算法_435.无重叠区间、763.划分字母区间、56.合并区间。
2023-11-28 15:04:56 458
原创 代码随想录算法训练营第三十五天 _ 贪心_860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球
【代码】代码随想录算法训练营第三十五天 _ 贪心_860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球。
2023-11-27 17:24:04 337
原创 代码随想录算法训练营第三十四天 _ 贪心算法_1005.K次取反后最大化的数组和、134.加油站、135.分发糖果。
引用自hello算法:https://www.hello-algo.com/chapter_sorting/insertion_sort/
2023-11-27 11:09:18 404
原创 代码随想录算法训练营第三十二天 _ 贪心算法_122.买卖股票的最佳时机II 、55. 跳跃游戏 、45.跳跃游戏II。
因为有这个next的存在,局部最优才能变为全局最优。
2023-11-25 20:55:03 388
原创 代码随想录算法训练营第三十一天 _ 贪心算法_455.分发饼干、376. 摆动序列、53. 最大子序和。
贪心算法中的指的是。贪心算法就是直觉可以接受就行,不要求严格的数学证明。不合适的条件设置用反证法证明不适用就行。贪心算法相关的题目做的很不舒服,可能是因为我不贪心吧,更可能是因为没有任何的规律性;总是感觉一知半解的,就很迷茫。
2023-11-24 20:52:16 337
原创 代码随想录算法训练营第三十天 _ 回溯_332.重新安排行程、51. N皇后 、37. 解数独。
【代码】代码随想录算法训练营第三十天 _ 回溯_332.重新安排行程、51. N皇后 、37. 解数独。
2023-11-23 21:31:20 422
原创 代码随想录算法训练营第二十九天 _ 回溯_491.递增子序列、46.全排列、47.全排列 II。
【代码】代码随想录算法训练营第二十九天 _ 回溯_491.递增子序列、46.全排列、47.全排列 II。
2023-11-22 16:35:39 31
原创 代码随想录算法训练营第二十八天 _ 回溯_93.复原IP地址、78.子集、 90.子集II 。
【代码】代码随想录算法训练营第二十八天 _ 回溯_93.复原IP地址、78.子集、 90.子集II。
2023-11-21 20:31:45 46
原创 代码随想录算法训练营第二十七天 _ 回溯_39. 组合总和、40.组合总和II、131.分割回文串。
【代码】代码随想录算法训练营第二十七天 _ 回溯_39. 组合总和、40.组合总和II、131.分割回文串。
2023-11-20 16:56:12 44
原创 代码随想录算法训练营第二十五天 _ 回溯_216. 组合总和 III、17. 电话号码的字母组合。
【代码】代码随想录算法训练营第二十五天 _ 回溯_216. 组合总和 III、17. 电话号码的字母组合、28.找出字符串中第一个匹配项的下标。
2023-11-18 17:12:38 54
原创 代码随想录算法训练营第二十三天 _ 二叉树_ 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树。
① node == null 作为终止条件:当问题需要遍历整棵树的所有节点时,通常使用 node == null 作为终止条件。这种情况适用于遍历整个树的场景,比如树的搜索、求深度、路径遍历等。② node.left == null && node.right == null 作为终止条件:当问题需要针对叶子节点进行特定操作时,例如寻找叶子节点、计算叶子节点的高度或路径等,此时使用 node.left == null && node.right == null 作为终止条件更为合适。
2023-11-16 09:33:13 46
原创 代码随想录算法训练营第二十二天 _ 二叉树_235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点、129. 求根节点到叶节点数字之和。
【代码】代码随想录算法训练营第二十二天 _ 二叉树_235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点。
2023-11-15 15:20:12 41
原创 代码随想录算法训练营第二十一天 _ 二叉树_530.二叉搜索树的最小绝对差 、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先。
还是要按照基本的流程来写递归函数,否则就会迷茫。。。
2023-11-14 15:10:40 66 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人