C++ | Leetcode C++题解之第416题分割等和子集

题目:

题解:

cpp 复制代码
class Solution {
public:
    bool canPartition(vector<int>& nums) {
        int n = nums.size();
        if (n < 2) {
            return false;
        }
        int sum = 0, maxNum = 0;
        for (auto& num : nums) {
            sum += num;
            maxNum = max(maxNum, num);
        }
        if (sum & 1) {
            return false;
        }
        int target = sum / 2;
        if (maxNum > target) {
            return false;
        }
        vector<int> dp(target + 1, 0);
        dp[0] = true;
        for (int i = 0; i < n; i++) {
            int num = nums[i];
            for (int j = target; j >= num; --j) {
                dp[j] |= dp[j - num];
            }
        }
        return dp[target];
    }
};
相关推荐
识君啊几秒前
Java 滑动窗口 - 附LeetCode经典题解
java·算法·leetcode·滑动窗口
烟花落o3 分钟前
【数据结构系列02】轮转数组、返回倒数第k个节点
数据结构·算法·leetcode·刷题
追随者永远是胜利者9 分钟前
(LeetCode-Hot100)3. 无重复字符的最长子串
java·算法·leetcode·职场和发展·go
Lenyiin10 分钟前
《LeetCode 顺序刷题》11 -20
java·c++·python·算法·leetcode·lenyiin
curry____30319 分钟前
c++位运算符笔记
java·c++·笔记
枫叶丹41 小时前
【Qt开发】Qt界面优化(四)-> Qt样式表(QSS) 选择器概况
c语言·开发语言·c++·qt
0 0 08 小时前
CCF-CSP 39-2 水印检查(watermark)【C++】
c++·算法
plus4s8 小时前
2月15日(78,80,81题)
c++·算法·图论
期末考复习中,蓝桥杯都没时间学了11 小时前
力扣刷题19
算法·leetcode·职场和发展
zmzb010311 小时前
C++课后习题训练记录Day104
开发语言·c++