[LeetCode] Partition Equal Subset Sum

xiaoxiao2021-02-28  61

Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such that the sum of elements in both subsets is equal.

Note:

Each of the array element will not exceed 100.The array size will not exceed 200.

Example 1:

Input: [1, 5, 11, 5] Output: true Explanation: The array can be partitioned as [1, 5, 5] and [11].

Example 2:

Input: [1, 2, 3, 5] Output: false Explanation: The array cannot be partitioned into equal sum subsets.

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

转载请注明原文地址: https://www.6miu.com/read-43052.html

最新回复(0)