*Leetcode 416. 分割等和子集

Posted Z-Pilgrim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*Leetcode 416. 分割等和子集相关的知识,希望对你有一定的参考价值。

力扣

class Solution 
public:
    bool canPartition(vector<int>& nums) 
        // dp[i][j] = dp[i-1][j]   dp[i-1][j-nums[i]] & 1
        
        // memset(dp, 0, sizeof(dp));
        int sum = 0;
        for(int i = 0; i < nums.size(); i++) 
            sum += nums[i];
        if(sum%2) return 0;
        int dp[nums.size()][sum+1];
        memset(dp[0], 0, sizeof(dp[0]));
        int ret = 0;
        dp[0][0] = 1;
        for(int i = 0; i < nums.size(); i++) 
            if(i == 0) dp[i][nums[i]] = 1;
            else 
                for(int j = 1; j <= sum; j++) 
                    dp[i][j] = 0;
                    // if(dp[i-1][j]) 
                    //     // dp[i][j+nums[i]] = 1;
                    //     dp[i][j] = 1;
                    // 
                    if( j - nums[i] >= 0)
                        dp[i][j] = dp[i-1][j] | dp[i-1][j-nums[i]];
                    else
                        dp[i][j] = dp[i-1][j];

                    if(j == sum/2 && dp[i][j])
                        return true;
                
            
        
        return false;
    
;

以上是关于*Leetcode 416. 分割等和子集的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 416. 分割等和子集---直接解法

LeetCode 416. 分割等和子集

Leetcode刷题Python416. 分割等和子集

(Java) LeetCode 416. Partition Equal Subset Sum —— 分割等和子集

416-分割等和子集(01背包)

LeetCode 416. 分割等和子集 c++/java详细题解