上一页 1 2 3 4 5 6 7 ··· 11 下一页
摘要: ✅01背包中是"否能装满"的问题 如果能把数组分割成两个子集且使得子集的元素和相等,那么证明该集合的元素总和必须要是能被2整除的,这是一个前提条件 假设总和为sum,那问题就转化成了余下的元素是否能装满容量为sum / 2的背包 再其次,因为每一个元素只能使用一次,所以这是一个0 - 1背包 💡这 阅读全文
posted @ 2022-04-05 19:24 北原春希 阅读(38) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 这道题是我二刷代码随想录一路无双下来第一个遇到的一点思路也没有的题目,惭愧 dp数组的含义 dp[i]是指总节点数为n的不同二叉搜索树的种类 递推公式 在对dp[i]的遍历中,总节点数为n,取其中的j 为一个根节点,则这个节点的左边有j - 1个节点,右边有i - j个节点,故d 阅读全文
posted @ 2022-04-05 18:36 北原春希 阅读(28) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 其实做这道题的时候我一直在想,要不是看了一眼标签里有动态规划,这道题谁会知道要用动态规划来做啊? dp数组的含义 dp[i]指把整数n拆分后的最大乘积(这里的拆分至少是拆成两个数!,所以dp[i][j]至少是两个数的乘积) 递推公式 从1遍历到j,得到dp[i]的渠道有 (i - 阅读全文
posted @ 2022-04-05 18:24 北原春希 阅读(50) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 一眼图论,但其实是动态规划 这一题和上面一题不同,有了障碍物的设计 dp数组的含义 求什么就设什么。dp[i][j]是到达坐标(i, j)的不同路径数 递推公式 到达(i, j)的路径可以是从(i - 1, j)来,也可以是从(i, j - 1)来,题目求的是方法数,故这里就直接 阅读全文
posted @ 2022-04-05 16:40 北原春希 阅读(26) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 乍一看是一道图论题(实际上也可以用图论),但是可以用动态规划来解的题。 dp数组的含义 求什么就设什么。dp[i][j]是到达坐标(i, j)的不同路径数 递推公式 到达(i, j)的路径可以是从(i - 1, j)来,也可以是从(i, j - 1)来,题目求的是方法数,故这里就 阅读全文
posted @ 2022-04-05 16:35 北原春希 阅读(34) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 这一题的题面就难读的离谱,可以引用一位大哥的话 我觉得这个题的描述应该改改:每个阶梯都有一定数量坨屎,一次只能跨一个或者两个阶梯,走到一个阶梯就要吃光上面的屎,问怎么走才能吃最少的屎?开局你选前两个阶梯的其中一个作为开头点,并吃光该阶梯的屎。 豁然开朗💡 dp数组的含义 求什么 阅读全文
posted @ 2022-04-05 16:29 北原春希 阅读(33) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 这里和斐波那契的区别是这里是要求方法数 dp数组的含义 dp[n]意思是爬到第n阶台阶有的不同种的方法数 递推公式 爬到第n阶台阶有几种方法呢,可以从n - 1阶爬上来,也可以从 n - 2阶爬上来,故dp[n] = dp[n - 1] + dp[n - 2] 初始化 dp[0] 阅读全文
posted @ 2022-04-05 16:24 北原春希 阅读(31) 评论(0) 推荐(0)
摘要: ✅做题思路or感想 直接dp四部曲(第五步是调试,故省) dp数组的含义 当值为n时,斐波那契数列f(n)的值 递推公式 题目已经给了:F(n) = F(n - 1) + F(n - 2),其中 n > 1 初始化 因为要确保n-2 >= 0,故这里要初始化到dp[1],而dp[1],dp[0]的值 阅读全文
posted @ 2022-04-05 16:18 北原春希 阅读(24) 评论(0) 推荐(0)
摘要: 要去一个更大的舞台了也说不定,先走了 阅读全文
posted @ 2022-04-04 15:49 北原春希 阅读(19) 评论(1) 推荐(0)
摘要: ✅做题思路or感想 一刷的我对这道题头痛不已,二刷的我一遍过,这种成就感是难以言说的。 而且这一次二刷的思路完全是根据自己的思路来设计的,我个人认为比Carl哥在书上写的思路更加浅显易懂。Carl哥在书上写的这道题的思路太绕了,而且用了好多奇怪的知识去解。 思路 大体思路是用两个变量start和en 阅读全文
posted @ 2022-04-04 15:44 北原春希 阅读(46) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 11 下一页