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];
}
相关推荐
Cx330❀1 小时前
【数据结构初阶】--排序(四):归并排序
c语言·开发语言·数据结构·算法·排序算法
意疏1 小时前
【C语言篇】srand函数的详细用法解析
c语言·开发语言
艾莉丝努力练剑2 小时前
【C语言16天强化训练】从基础入门到进阶:Day 1
c语言·开发语言·数据结构·学习
AI+程序员在路上2 小时前
单片机驱动LCD显示模块LM6029BCW
c语言·单片机·嵌入式硬件
·白小白2 小时前
力扣(LeetCode) ——100. 相同的树(C语言)
c语言·算法·leetcode
墩墩同学4 小时前
【LeetCode题解】LeetCode 74. 搜索二维矩阵
算法·leetcode·二分查找
SunnyKriSmile4 小时前
输入10个数并求最大值
c语言·算法
1白天的黑夜16 小时前
前缀和-560.和为k的子数组-力扣(LeetCode)
c++·leetcode·前缀和
m0_672813776 小时前
Leetcode-3427变长子数组求和
leetcode
崎岖Qiu6 小时前
leetcode100.相同的树(递归练习题)
算法·leetcode·二叉树·力扣·递归