Я занимался этой проблемой, обнаруженной по адресу: https://leetcode.com/problems/combination-sum-iv/
Вот мой код:
class Solution:
def combinationSum4(self, nums: List[int], target: int) -> int:
length = len(nums)
count = 0
tracker = []
result = []
def backtrack(targetLeft: int) -> None:
nonlocal count
if targetLeft == 0:
print(tracker)
result.append(tracker)
count += 1
return
elif targetLeft > 0:
for number in nums:
if targetLeft - number < 0:
continue
tracker.append(number)
backtrack(targetLeft - number)
tracker.pop()
return
backtrack(target)
print(result)
return count
В процессе понимания моего кода , Я пытался распечатать список комбинаций, ведущих к целевой сумме. Я также печатаю в конце массив результатов, в котором хранятся все комбинации. Когда код запускается, это стандартный вывод:
[1, 1, 1, 1]
[1, 1, 2]
[1, 2, 1]
[1, 3]
[2, 1, 1]
[2, 2]
[3, 1]
[[], [], [], [], [], [], []]
Кажется, генерируются правильные комбинации, однако эти комбинации не добавляются правильно в массив результатов. Массив результатов возвращается к массиву пустых массивов. Я пробовал просмотреть код вручную, но не совсем уверен, из-за чего это произошло.