代码随想录算法训练营第四十二天 | 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

class Solution {
    public boolean canPartition(int[] nums) {
        int sum = 0;
        for(int n : nums) 
            sum += n;
        if(sum % 2 == 1) return false;
        sum /= 2;
        int[] dp = new int[10001];
        for(int i = 0; i < nums.length; i++) {
            for(int j = sum; j >= nums[i] ;j--) 
            dp[j] = Math.max(dp[j], dp[j - nums[i]] + nums[i]);
        }
        if(dp[sum] == sum) return true;
        return false;
    }
}

总结:太难了,但是还好有卡哥的讲解哈哈,今天上的javaweb课我服了,老师真差劲,哎,看来二本的师资资源还是太差了;我感觉以后我讲的都比他好;

你可能感兴趣的:(代码随想录算法训练营,算法,leetcode,数据结构)