Успешно реализован ответ Чернослив.
ужно подняться по лестнице, которая имеет n ступеней, и вы решили получить дополнительное упражнение, перепрыгивая по ступенькам. Вы можете пройти не более k шагов за один прыжок. Верните все возможные последовательности прыжков, которые вы могли предпринять, чтобы подняться по лестнице, отсортированные.
Моя реализация, очевидно, дает мне неправильный ответ.
def climbingStaircase(n, k):
final_res=[]
final_res.append(CSR(n,k,[]))
return final_res
def CSR(n,k,res):
if n == 0:
return res
else:
for i in range(1,k+1):
if n-i>=0:
res.append(i)
n=n-i
res=CSR(n,i,res)
return res
Для n = 4 и k = 2 вывод должен быть
[[1, 1, 1, 1],
[1, 1, 2],
[1, 2, 1],
[2, 1, 1],
[2, 2]]
Фактический вывод:
[[1,1,1,1,2,1]]
Может кто-нибудь указать, какую часть я пропускаю?