416-Partition-Equal-Subset-Sum
0x0 题目详情
0x1 解题思路
0x2 代码实现
class Solution {
public boolean canPartition(int[] nums) {
if(nums==null || nums.length==0){
return false;
}
int sum=0;
for(int i=0;i<nums.length;i++){
sum+=nums[i];
}
if(sum%2!=0){
return false;
}
sum/=2;
return recur(nums,0,0,sum);
}
//重量从nums中选择
boolean recur(int[] values,int index,int already,int bag){
if(already== bag){
return true;
}
if(already>bag){
return false;
}
//虽然重量没超,但是没有数据可选了
if(index==values.length){
return false;
}
boolean p1=recur(values,index+1,already,bag);
boolean p2=recur(values,index+1,already+values[index],bag);
return p1|p2;
}
}0x3 课后总结
Last updated