![](/img/trans.png)
[英]Finding the best possible subset combinations of numbers to reach a given sum or closest to it
[英]Finding all possible combinations of numbers to get a given sum - Python to Nodejs
有人可以帮我将此代码转换为 nodejs 吗?
def subset_sum(numbers, target, partial=[], partial_sum=0):
if partial_sum == target:
#print("partial_sum")
#print(target)
yield partial
if partial_sum >= target:
return
#print(*enumerate(numbers))
print(*partial)
for i, n in enumerate(numbers):
#print(i)
remaining = numbers[i + 1:]
yield from subset_sum(remaining, target, partial + [n], partial_sum + n)
list(subset_sum([1, 2, 3, 7, 7, 9, 10], 10))
如果您实现自己的enumerate
函数,那么对现代 js 的转换确实几乎是 1:1。
console.log(Array.from(subsetSum([1, 2, 3, 7, 7, 9, 10], 10))) function* subsetSum(numbers, target, partial = [], partialSum = 0) { if (partialSum === target) yield partial if (partialSum >= target) return for(const [i, n] of enumerate(numbers)) { yield* subsetSum(numbers.slice(i + 1), target, [...partial, n], partialSum + n) } } function* enumerate(iterable) { let i = 0 for(const item of iterable) { yield [i++, item] } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.