494目标和 ——1049最后一块石头的重量(0-1背包问题)

2021-06-11  本文已影响0人  棉花糖7

这道题第一想法是用回溯,但是容易超时。

第二种是转换为0-1背包问题

        //若负数的和为neg,则整数的和为sum-neg

        //按题目要求target = (sum-neg)-neg,转换为neg = (sum-tar)/2

        //dp[i][j]表示前i个元素,凑出和为j的方案数目

        //当i=0,j=0时方案数dp[0][0]=1,j>0时,dp[i][j]=0;

        //其余情况中,j<num时,dp[i][j]=dp[i-1][j];j>=num时,dp[i][j] = dp[i-1][j]+dp[i-1][j-num]

还要注意一点就是,由于数组 nums中的元素都是非负整数,neg也必须是非负整数,所以上式成立的前提是 sum−target是非负偶数。若不符合该条件可直接返回 0。

题目 回溯法
动态规划 降维
题目

同样是转换为0-1背包问题,背包的容量是sum/2,越接近这个值,最后剩下的石头重量越低,是res = sum - 2*dp[len][mid]

code
上一篇 下一篇

猜你喜欢

热点阅读