So finden Sie die minimale Anzahl der Sprünge bis zum Ende des Arrays in O(n) Zeit

Frage

Gegeben sei ein Integer-array wo jedes element steht für die maximale Anzahl der Schritte, die gemacht werden können nach vorne aus, dass element.
Schreiben Sie eine Funktion geben Sie die minimale Anzahl der Sprünge zu erreichen
Ende das array (beginnend mit dem ersten element). Wenn ein element ist
0, dann nicht bewegen Sie sich durch das element aus.

Beispiel

Eingang: arr[] = {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9}

Ausgabe: 3 (1-> 3 -> 8 ->9)

Fand mehrere Möglichkeiten, von Dynamische Programmierung Ansatz zu anderen linearen Ansätze. Ich bin nicht in der Lage zu verstehen, der Ansatz, von dem gesagt wird, linear in der Zeit. HIER ist der link, wo ein linearer Ansatz vorgeschlagen.

Ich bin nicht in der Lage zu verstehen, es überhaupt nicht. Was ich verstehen könnte ist, dass der Autor suggeriert, zu tun, ein greedy-Ansatz und sehen, ob wir erreichen Ende .. wenn nicht, dann backtrack ?

InformationsquelleAutor Walt | 2015-01-09
Schreibe einen Kommentar