Update: 0416 使用STL求和

This commit is contained in:
Yukun J
2022-08-24 11:22:43 -04:00
parent fbe1e0006e
commit 0a9653df84

View File

@ -143,15 +143,12 @@ dp[j]的数值一定是小于等于j的。
class Solution { class Solution {
public: public:
bool canPartition(vector<int>& nums) { bool canPartition(vector<int>& nums) {
int sum = 0; // 使用标准库函数 便捷求和
int sum = accumulate(nums.begin(), nums.end(), 0);
// dp[i]中的i表示背包内总和 // dp[i]中的i表示背包内总和
// 题目中说:每个数组中的元素不会超过 100数组的大小不会超过 200 // 题目中说:每个数组中的元素不会超过 100数组的大小不会超过 200
// 总和不会大于20000背包最大只需要其中一半所以10001大小就可以了 // 总和不会大于20000背包最大只需要其中一半所以10001大小就可以了
vector<int> dp(10001, 0); vector<int> dp(10001, 0);
for (int i = 0; i < nums.size(); i++) {
sum += nums[i];
}
if (sum % 2 == 1) return false; if (sum % 2 == 1) return false;
int target = sum / 2; int target = sum / 2;