美文网首页快乐写代码
T416、分割等和子集

T416、分割等和子集

作者: 上行彩虹人 | 来源:发表于2020-05-06 11:12 被阅读0次

给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
注意:
每个数组中的元素不会超过 100
数组的大小不会超过 200
示例 1:
输入: [1, 5, 11, 5]
输出: true
解释: 数组可以分割成 [1, 5, 5] 和 [11].
示例 2:
输入: [1, 2, 3, 5]
输出: false

经典的0-1背包问题,将问题转换为背包容量为数组和的一半,求解在数组中挑选任意个数字,恰好能填满整个背包。

   public boolean canPartition(int[] nums) {
        int sum = 0;
        for(int num : nums)
            sum += num;
        if(sum % 2 != 0)
            return false;
        int target = sum / 2;
        int[] dp = new int[target+1];
        dp[0] = 1;
        for(int num : nums){
            for(int i = target; i >= num; i--)
                if(dp[i-num]==1)
                    dp[i]=1;
        }
        return dp[target]==1;
    }

相关文章

  • T416、分割等和子集

    给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素...

  • 分割等和子集

    题目描述:给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例:输入...

  • 分割等和子集

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/part...

  • 分割等和子集

    求未知个数组中的数的组合,不重复使用的情况下求和为k的解是否存在。

  • 分割等和子集

    分割等子集[https://programmercarl.com/0416.%E5%88%86%E5%89%B2%...

  • 分割等和子集

    第一版代码: 只用一维数组解决 参考动态规划|分割等和子集 - 知乎 (zhihu.com)[https://zh...

  • 0/1背包问题 0/1 Knapsack

    题目列表 相等子集划分问题 Equal Subset Sum Partition 416. 分割等和子集 子集和问...

  • 416. 分割等和子集

    给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的...

  • 416. 分割等和子集

  • 416. 分割等和子集

网友评论

    本文标题:T416、分割等和子集

    本文链接:https://www.haomeiwen.com/subject/ommightx.html