leetcode 416. 分割等和子集
题目如下
数据范围
本题和leetcode 2915. 和为目标值的最长子序列的长度类似,这里不过多赘述。
leetcode 2915. 和为目标值的最长子序列的长度
通过代码
class Solution {
public:
bool canPartition(vector<int>& nums) {
int n = nums.size();
int ans = -1;
int sum = 0;
for (int i = 0; i < n; i++) {
sum += nums[i];
}
if (sum % 2 == 1)
return false;
int target = sum / 2;
vector<bool> dp(target + 1, false);
dp[0] = true;
for (int i = 1; i <= n; i++) {
for (int j = target; j >= nums[i - 1]; j--) {
dp[j] = dp[j] || dp[j - nums[i - 1]];
}
}
return dp[target];
}
};