LeetCode 416-分割等和子集

  1. 分割等和子集
    给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。

示例 1:

输入:nums = [1,5,11,5]

输出:true

解释:数组可以分割成 [1, 5, 5] 和 [11] 。

示例 2:

输入:nums = [1,2,3,5]

输出:false

解释:数组不能分割成两个元素和相等的子集。

提示:

1 <= nums.length <= 200

1 <= nums[i] <= 100

java 复制代码
class Solution {
    public boolean canPartition(int[] nums) {
        int sum = 0;
        for (int n : nums) {
            sum += n;
        }
        if(sum%2==1){
            return false;
        }
        int target = sum / 2;
        int len = nums.length;
        int[][] dp = new int[len+1][target+1];

        for(int i = 1;i<=len;i++){
            for(int j = 1;j<=target;j++){
                if(j>=nums[i-1]){
                    dp[i][j]=Math.max(dp[i-1][j],dp[i-1][j-nums[i-1]]+nums[i-1]);
                }else{
                    dp[i][j] = dp[i-1][j];
                }
            }
        }
        System.out.println(dp[len][target]);
        if(dp[len][target]==target) return true;
        else return false;
    }
}
相关推荐
神里流~霜灭8 分钟前
蓝桥备赛指南(12)· 省赛(构造or枚举)
c语言·数据结构·c++·算法·枚举·蓝桥·构造
小杨爱学习zb14 分钟前
学习总结 网格划分+瞬态求解设置
笔记·学习·算法
双叶83628 分钟前
(C语言)单链表(1.0)(单链表教程)(数据结构,指针)
c语言·开发语言·数据结构·算法·游戏
uhakadotcom1 小时前
OpenAI 的 PaperBench:AI 研究复现基准测试工具
算法·面试·github
凯强同学1 小时前
第十四届蓝桥杯大赛软件赛省赛Python 大学 C 组:6.棋盘
python·算法·蓝桥杯
学习编程的gas1 小时前
数据结构——队列的实现
数据结构
wuqingshun3141591 小时前
蓝桥杯 切割
数据结构·c++·算法·职场和发展·蓝桥杯
艾妮艾妮1 小时前
C语言常见3种排序
java·c语言·开发语言·c++·算法·c#·排序算法
百度Geek说1 小时前
前沿多模态模型开发与应用实战3:DeepSeek-VL2多模态理解大模型算法解析与功能抢先体验
算法
小王努力学编程1 小时前
动态规划学习——回文子串系列问题【C++】
c++·学习·算法·leetcode·动态规划