*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. 分割等和子集的主要内容,如果未能解决你的问题,请参考以下文章