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];
    }
};
相关推荐
Rock_yzh1 天前
LeetCode算法刷题——560. 和为 K 的子数组
数据结构·c++·学习·算法·leetcode·职场和发展·哈希算法
nju_spy1 天前
力扣每日一题(11.10-11.29)0-1 和 k 整除系列
python·算法·leetcode·前缀和·单调栈·最大公约数·0-1背包
liulilittle1 天前
C++ 17 字符串填充函数(PaddingLeft、PaddingRight)填充左侧、右侧。
c++·算法
AuroraWanderll1 天前
深入理解C++多态(三):多态的原理——虚函数表机制(上)
c语言·开发语言·数据结构·c++·算法·stl
阿沁QWQ1 天前
STL库vector模拟实现
开发语言·c++
做怪小疯子1 天前
LeetCode 热题 100——二叉树——翻转二叉树
算法·leetcode·职场和发展
Fcy6481 天前
C++ 模版(进阶)(含array解析)
开发语言·c++·stl·array·模版
Minecraft红客1 天前
复原大唐3d更新版本
c++·游戏·3d·娱乐
OKkankan1 天前
多态概念及使用
开发语言·数据结构·c++·算法
做怪小疯子1 天前
LeetCode 热题 100——二叉树——二叉树的最大深度
算法·leetcode·职场和发展