Даны два числа n и k, и вы должны найти все возможные комбинации чисел k из 1 ... n. Я реализую это с помощью алгоритма DFS. Но мой массив ans
возвращает None, тогда как если я пытаюсь напечатать temp
, комбинации генерируются правильно. Что я делаю неправильно ?
По этой ссылке от Geeks for Geeks Работает правильно для C ++
Вот мой код:
def DFSUtil(ans, temp, n, left, k):
if k == 0:
ans.append(temp)
return
for i in range(left, n+1):
temp.append(i)
DFSUtil(ans, temp, n, i+1, k-1)
temp.pop()
def DFS(n, k):
ans = []
temp = []
DFSUtil(ans, temp, n, 1, k)
return ans
n = 5
k = 3
ans = DFS(n, k)
for i in range(len(ans)):
for j in range(len(ans[i])):
print(ans[i][j], end=' ')
print()
Ожидаемая работа:
Input : n = 4
k = 2
Output : 1 2
1 3
1 4
2 3
2 4
3 4