摘要:
本题和分割等和子集基本一样,将stones分成两堆,两堆的和要尽可能的相同。 class Solution { public int lastStoneWeightII(int[] stones) { int sum=0; for(int s:stones) sum+=s; int num=solv 阅读全文
posted @ 2022-02-23 15:01
livingsu
阅读(25)
评论(0)
推荐(0)
摘要:
先求出总和sum,要求出是否存在子集,使得子集和为sum/2。 本题看做一个0-1背包问题:物品的重量和价值就是元素值,背包总承重是sum/2,可以求出背包能放下的最大价值,如果该值正好等于sum/2,说明正好装满 class Solution { public boolean canPartiti 阅读全文
posted @ 2022-02-23 12:08
livingsu
阅读(27)
评论(0)
推荐(0)
摘要:
一、0-1背包 有n个物品,它们的重量分别为weight[i],价值分别为value[i],现有一个承重为m的背包,每个物品要么拿一个,要么不拿,问背包能装下的最大价值。 2.1 二维数组 直观的动态规划是二维数组 dp[i][j]表示在下标为0-i的物品中选择,且背包承重为j时的最大价值 最后要求 阅读全文
posted @ 2022-02-23 11:53
livingsu
阅读(39)
评论(0)
推荐(0)

浙公网安备 33010602011771号