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];
    }
};
相关推荐
njsgcs7 分钟前
ubuntu24.04 cmake 报错 libldap-2.5.so.0 解决办法
开发语言·c++
头发尚存的猿小二37 分钟前
2024年第十五届蓝桥杯C&C++大学A组--成绩统计
c语言·开发语言·c++·蓝桥杯
JuicyActiveGilbert1 小时前
【C++游戏引擎开发】第9篇:数学计算库GLM(线性代数)、CGAL(几何计算)的安装与使用指南
c++·线性代数·游戏引擎
DevangLic1 小时前
下【STL 之速通pair vector list stack queue set map 】
开发语言·c++·list
rigidwill6662 小时前
LeetCode hot 100—子集
数据结构·c++·算法·leetcode·职场和发展
阳洞洞2 小时前
leetcode 322. Coin Change
算法·leetcode·动态规划·完全背包问题
周不易2 小时前
ubuntu20.04+qt5.12.8安装serialbus
开发语言·c++·qt·modbus·serialbus
嘤国大力士2 小时前
C++11&QT复习 (十七)
开发语言·c++·qt
.格子衫.3 小时前
008二分答案+贪心判断——算法备赛
开发语言·c++·算法
虾球xz3 小时前
游戏引擎学习第217天
c++·学习·游戏引擎