簡體   English   中英

查找所有可能的數字組合以獲得給定的總和 - Python 到 Nodejs

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM