I A[1,...,n]
positiver Zahlen eine Anordnung haben, zum Beispiel:Die längste Teilarray, dass alle Elemente kleiner oder gleich A [i]
[1, 2, 5, 3, 7, 2, 8, 4]
Ich brauche ein Array S[1,...,n]
nach der Definition zu erstellen:
S[i] = max {k|∀i−k <j≤i :A[j] ≤ A[i] and k ≤ i}
Es bedeutet die längste Unterarray A[i − k,..,i]
, dass alle seine Elemente zu finden, die weniger oder gleich A[i]
für jeden Index in der Anordnung.
Ich muss einen Algorithmus schreiben, der das Array S in O (n) mit Stack erstellt.
Zum Beispiel für das Array [1,2,4,3,5] Ich brauche das Array zurück [1,2,3,2,5]
Danke.
Das ist eine schöne Lösung ist !! – uSeemSurprised
Danke, aber es findet nicht die maximale Länge. Zum Beispiel: [1,2,4,3,5] sollte zurückkehren [1,2,3,2,5], aber es kommt zurück [1,2,3,1,5] – rotemhas
Ich weiß einfach nicht wie um die maximale Länge von A [i] zu finden, wenn es größer ist. Zum Beispiel, [1,2,4,3], wie kann ich die maximale Länge von 3 mit Stack finden? Danke – rotemhas