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

题目:

题解:

cpp 复制代码
bool canPartition(int* nums, int numsSize) {
    if (numsSize < 2) {
        return false;
    }
    int sum = 0, maxNum = 0;
    for (int i = 0; i < numsSize; ++i) {
        sum += nums[i];
        maxNum = fmax(maxNum, nums[i]);
    }
    if (sum & 1) {
        return false;
    }
    int target = sum / 2;
    if (maxNum > target) {
        return false;
    }
    int dp[target + 1];
    memset(dp, 0, sizeof(dp));
    dp[0] = true;
    for (int i = 0; i < numsSize; i++) {
        int num = nums[i];
        for (int j = target; j >= num; --j) {
            dp[j] |= dp[j - num];
        }
    }
    return dp[target];
}
相关推荐
程序员编程指南20 分钟前
Qt 远程过程调用(RPC)实现方案
c语言·c++·qt·rpc·系统架构
花开月满西楼2 小时前
电子设计大赛【C语言核心知识点】讲解
c语言
技术卷3 小时前
详解力扣高频SQL50题之610. 判断三角形【简单】
sql·leetcode·oracle
erdongchen3 小时前
数组之一维数组
c语言
用户6120414922133 小时前
C语言做的井字棋小游戏
c语言·后端·游戏
小新学习屋4 小时前
《剑指offer》-数据结构篇-哈希表/数组/矩阵/字符串
数据结构·leetcode·哈希表
guozhetao5 小时前
【ST表、倍增】P7167 [eJOI 2020] Fountain (Day1)
java·c++·python·算法·leetcode·深度优先·图论
吃着火锅x唱着歌5 小时前
LeetCode 611.有效三角形的个数
算法·leetcode·职场和发展
技术卷5 小时前
详解力扣高频SQL50题之619. 只出现一次的最大数字【简单】
sql·leetcode·oracle
##echo5 小时前
嵌入式Linux裸机开发笔记9(IMX6ULL)GPIO 中断实验(1)
linux·c语言·笔记·单片机·嵌入式硬件