[LeetCode] Partition Equal Subset Sum

来源:互联网 发布:淘宝运营助理工资多少 编辑:程序博客网 时间:2024/05/18 12:42

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:

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

Example 1:

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

Example 2:

Input: [1, 2, 3, 5]Output: falseExplanation: 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]; }}


原创粉丝点击