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];
}
相关推荐
唐·柯里昂7982 分钟前
[rk3566AI模型部署]泰山派buildroot部署yolov5 使用rknn_model_zoo
c语言·c++·笔记·yolo·rk3566·瑞芯微·泰山派
aini_lovee5 分钟前
基于 OpenCV 的模板匹配算法的 C 语言实现
c语言·opencv·算法
进击的小头16 分钟前
02_嵌入式C与控制理论入门:自动控制理论核心概念拆解
c语言·单片机·算法
黎雁·泠崖19 分钟前
C 语言底层核心:数据在内存中的存储(大小端 + 整数 + 浮点型全解析)
c语言·开发语言
embrace9935 分钟前
【数据结构学习】数据结构和算法
c语言·数据结构·c++·学习·算法·链表·哈希算法
koping_wu1 小时前
【leetcode】排序数组:快速排序、堆排序、归并排序
java·算法·leetcode
历程里程碑1 小时前
LeetCode 283:原地移动零的优雅解法
java·c语言·开发语言·数据结构·c++·算法·leetcode
leaves falling1 小时前
c语言-根据输入的年份和月份,计算并输出该月份的天数
c语言·开发语言·算法
元亓亓亓1 小时前
LeetCode热题100--139. 单词拆分--中等
算法·leetcode·职场和发展
leaves falling1 小时前
c语言将三个整数数按从大到小输出
c语言·开发语言