Ich implementiere eine rekursive Version der maximal steigenden Subsequenz, aber ich denke, dass ich auch Parameter verwende.Wie kann ich die Anzahl der Parameter reduzieren?
Strategie:
Liste von Elementen (Integer)
Liste der Längen (max Länge von Teilfolge)
Referenzliste (Element, das ich gehen sollte das finden nächstes Element in der Unterfolge)
Imp lementation:
def search(i,j,elements,references,leng,temp):
if i == len(elements):
return references,leng
if j < 0:
return search(i+1,i,elements,references,leng,0)
if temp < leng[j] and elements[i] > elements[j]:
leng[i] = leng[j] + 1
references[i] = j
temp = leng[j]
return search(i,j-1,elements,references,leng,temp)
Erster Aufruf:
leng = [1]*len(elements)
references = [-1]*len(elements)
references,leng = search(0,0,elements,references,leng,0)
Es wäre sehr hilfreich, wenn Sie mir erklären kann, wie ich die Anzahl der Parameter zu reduzieren.
Danke.
Setzen Sie die Parameter in einer Liste übergeben können. Jetzt haben Sie nur einen Parameter: P – ForceBru
Stellen Sie sicher, dass Sie Ihren Eindruck genau reproduzieren, wenn Sie Python-Code veröffentlichen. Andernfalls führen Sie neue Fehler in den Code ein. – khelwood
@ForceBru Das Übergeben von veränderbaren Objekten kann jedoch zu anderen Problemen führen. –