代码随想录 day36 最后一块石头的重量 II | 目标和 | 一和零
最后一块石头的重量 II
解题思路
把数组根据和拆分为两半,一半是dp[target],另一半是sum - dp[target]。随后利用背包问题的思路求得dp[target]。当设置dp数组容量时,应当为最大的数值。
知识点
背包问题
心得
没想到拆分的解法和正确设置dp数组的大小
目标和
解题思路
涉及到一个想不到的数学推导,需要计算得到的值为target,根据题目要求必有两个集合的和 A - B = target。 同时 A + B = sum,所有我们可以得到其中一个集合为 A = (target + sum) / 2。根据这个值进行背包问题的处理,就能得到
知识点
背包问题
心得
这个数学推导根本想不到,太难了。
一和零
解题思路
这是一个二维的背包问题,我们需要找到同时满足m,n的值,所以在原有的基础上再多加一层循环即可
知识点
背包问题
心得
好难的题目,又增添了一个新思路