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];
}
相关推荐
wdfk_prog15 小时前
[Linux]学习笔记系列 -- lib/sort.c 通用的排序库(Generic Sorting Library) 为内核提供标准的、高效的排序功能
linux·运维·c语言·笔记·stm32·学习·bug
shark_dev15 小时前
C/C++ 指针详解与各种指针定义
c语言·c++
钮钴禄·爱因斯晨17 小时前
数据结构|图论:从数据结构到工程实践的核心引擎
c语言·数据结构·图论
yanqiaofanhua18 小时前
C语言自学--自定义类型:结构体
c语言·开发语言·算法
向前阿、18 小时前
数据结构从入门到实战————栈
c语言·开发语言·数据结构·程序人生
71-318 小时前
C语言速成秘籍——循环结构(while、do while、for)和跳转语句(break,continue)
c语言·笔记·其他
K 旺仔小馒头21 小时前
【代码的暴力美学】-- C语言基础编程题_1
c语言·刷题
XCOSnTh21 小时前
XCOSnTh单片机的串口
c语言·单片机·嵌入式硬件·算法·xcosnth
1白天的黑夜121 小时前
优先级队列(堆)-1046.最后一块砖的重量-力扣(LeetCode)
c++·leetcode·优先级队列
仰泳的熊猫1 天前
LeetCode:496. 下一个更大元素 I
数据结构·c++·算法·leetcode