【发布时间】:2019-03-03 03:53:19
【问题描述】:
对于给定的集合、元素的总和和长度,
我想获取集合是否满足条件的布尔值
例如...
Input : set = [18,0,2,20], sum = 20, length = 2 <br>
Output : True (subset [18,2] satisfy the sum=20 for given length 2)
Input : set = [18,0,2,20], sum = 22, length = 1 <br>
Output : False
如果有给定的长度限制,我该如何解决这个问题?
(如果没有长度条件,我可以轻松解决:
subset-sum-problem)
def isSubsetSum(set, n, sum):
if sum == 0:
return True
if (sum != 0) and (n == 0):
return False
if (set[n-1] > sum):
return isSubsetSum(set,n-1,sum)
# (a) including the last element
# (b) excluding the last element
# Not "AND", But "OR" !!!!!
return isSubsetSum(set,n-1,sum) or isSubsetSum(set,n-1,sum-set[n-1])
【问题讨论】:
标签: python subset subset-sum