今天是第四十二天,是动态规划中的背包问题
class Solution { public boolean canPartition(int[] nums) { int sum = 0; int n = nums.length; int[] dp = new int[10001]; for(int i = 0; i< n; i++){ sum += nums[i]; } if(sum %2==1){ return false; } int target = sum/2; for(int i = 0; i< n; i++){ for(int j = target; j >= nums[i]; j--){ dp[j] = Math.max(dp[j], dp[j-nums[i]]+nums[i]); } } if(dp[target] == target){ return true; } return false; } }
leetcode没有背包问题,但这道题可以用背包的思路来,这个题的模版很典型,需要背下来
背包问题非常难,希望可以学会它
标签:target,nums,int,代码,随想录,第四十二,sum,dp From: https://www.cnblogs.com/catSoda/p/16917841.html