每个数都可以取或不取,用字典存储已经尝试过的和
class Solution:
def canPartition(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
sumn=sum(nums)
if sumn&1==1:return False
else: return self.canFind(nums,sumn//2,0,len(nums),{})
def canFind(self,nums,target,start,end,dict1):
if target in dict1:
return dict1[target]
if target==0:
return True
else:
dict1[target]=False
for i in range(start,end):
if self.canFind(nums,target-nums[i],i+1,end,dict1):
return True
return dict1[target]