题解 | #分割等和子集#
分割等和子集
http://www.nowcoder.com/practice/65ade309fa4d4067a9add749721bfdc0
python解法,十个案例能跑通九个。最后一个案列超时,没有优化思路,征集一下
nums=list(map(int,input().split()))
sums=sum(nums)
if sums%2==1:
print('false')
else:
N=sums//2
dp=[float('-inf') for i in range(N+1)]
dp[0]=0
for i in range(n):
if nums[i]>N:
print('false')
break
else:
for j in range(N,nums[i]-1,-1):
dp[j]=max(dp[j],dp[j-nums[i]]+nums[i])
if dp[-1]!=float('-inf'):
break
break
if dp[-1]!=float('-inf'):
print('true')
else:
print('false')