day29打卡

ikun1111發表於2024-10-13

416 分割等和子集

class Solution {
public:
bool canPartition(vector& nums) {
int sum = 0;
for(int &it : nums)
{
sum += it;
}
if(sum % 2 == 1)
{
return false;
}
int target = sum / 2;
vector dp(10001, 0);
for(int i = 0; i < nums.size(); ++i)
{
for(int j = target; j >= nums[i]; --j)
{
dp[j] = max(dp[j], dp[j-nums[i]] + nums[i]);
}
}
if(dp[target] == target)
{
return true;
}
return false;
}
};