Page 1 of 1

So vermeiden Sie eine Rekursion [geschlossen]

Posted: 13 Jan 2025, 10:59
by Guest
Ich habe einen Algorithmus, der
https://www.hackerrank.com/challenges/c ... /417205559
Ihr Ziel ist, die Anzahl der Wege zu finden Erstellen Sie ein Array, sodass aufeinanderfolgende Positionen unterschiedliche Werte enthalten.
Konkret möchten wir ein Array mit Elementen erstellen, sodass jedes Element zwischen und (einschließlich) liegt. Wir möchten auch, dass das erste und das letzte Element des Arrays 1 und x sind.
Es erhält dort auf rekursive Weise die Anzahl der Elemente und die Auswertung der Permutationen.

Code: Select all

cache=[]
_build_dp=_build_dp
def _build_dp(last, s, array, rest, x, n):
for j in reverse(len(n):
if len(rest)>n:
return 0
if n==2:
if s!=x:
return 1
else:
return 0
_count=0
if (len(rest)==n):
for i in rest:
if i!=s:
_count+=_build_dp(s, i,  array, [ j for j in rest if j!=i ], x, n-1)
else:
for i in array:
if i!=s:
_count+=_build_dp(s, i,  array, [ j for j in rest if j!=i ], x, n-1)
return _count