[LeetCode]416. Partition Equal Subset Sum

来源:互联网 发布:南京毓铭网络怎么样 编辑:程序博客网 时间:2024/05/01 07:27

https://leetcode.com/problems/partition-equal-subset-sum/



找是否有子数组之和为sum / 2。两层循环,外层循环nums,内层循环sum。当不包括nums[i]情况下存在子数组和为j时,则子数组和可能为nums[i] + j。

public class Solution {    public boolean canPartition(int[] nums) {        int sum = 0;        for (int num : nums) {            sum += num;        }        if (sum % 2 != 0) {            return false;        }        boolean[] dp = new boolean[sum + 1];        for (int i = 0; i < nums.length; i++) {            for (int j = sum - nums[i]; j >= 0; j--) {                dp[nums[i] + j] |= dp[j];            }            dp[nums[i]] = true;        }        return dp[sum / 2];    }}


0 0
原创粉丝点击