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];
    }
};
相关推荐
ai.Neo36 分钟前
牛客网NC22012:判断闰年问题详解
开发语言·c++·算法
jie188945758661 小时前
c++,windows,多线程编程详细介绍
开发语言·c++
袁气满满~_~1 小时前
LeetCode:617、合并二叉树
算法·leetcode·二叉树
珹洺1 小时前
C++从入门到实战(十五)String(上)介绍STL与String的关系,为什么有string类,String有什么用
开发语言·c++·stl
共享家95271 小时前
红黑树解析
数据结构·c++·算法
边跑边掩护1 小时前
LeetCode 820 单词的压缩编码题解
算法·leetcode·职场和发展
Espresso Macchiato1 小时前
Leetcode 3543. Maximum Weighted K-Edge Path
leetcode·leetcode medium·图遍历·leetcode 3543·leetcode双周赛156
君鼎2 小时前
IO复用详解——C/C++
开发语言·c++
愚润求学2 小时前
【Linux】动静态库的使用
linux·运维·服务器·开发语言·c++·笔记
写代码写到手抽筋2 小时前
C++性能优化之访存优化(未完)
开发语言·c++