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];
    }
};
相关推荐
smj2302_796826525 分钟前
解决leetcode第3826题.最小分割分数问题
数据结构·python·算法·leetcode
Laurence7 分钟前
从零到一构建 C++ 项目(IDE / 命令行双轨实现)
前端·c++·ide
我在人间贩卖青春13 分钟前
cout语句和cin语句
c++·cin·输入输出流·cout
Jiu-yuan17 分钟前
C++文件操作
c++
VT.馒头17 分钟前
【力扣】2705. 精简对象
javascript·数据结构·算法·leetcode·职场和发展·typescript
元亓亓亓27 分钟前
LeetCode热题100--136. 只出现一次的数字--简单
算法·leetcode·职场和发展
2301_7634725831 分钟前
实时系统下的C++编程
开发语言·c++·算法
im_AMBER32 分钟前
Leetcode 113 合并 K 个升序链表
数据结构·学习·算法·leetcode·链表
阿猿收手吧!38 分钟前
【C++】深入理解C++ Atomic内存序:解决什么问题?怎么用?
开发语言·c++
小黄人软件43 分钟前
【MFC】底层类显示消息到多个界面上。 MFC + 线程 + 回调 的标准模板 C++函数指针
c++·mfc