Algorithmusgratis
Array an Ort und Stelle umkehren
Tausche die beiden Enden und arbeite dich zur Mitte vor. Kein zweites Array nötig.
- Zeit
- O(n)
- Speicher
- O(1)
// Schritt für Schritt
Schritt 1 / 6
1function reverseInPlace(nums) {2 let lo = 0, hi = nums.length - 1;3 while (lo < hi) {4 [nums[lo], nums[hi]] = [nums[hi], nums[lo]];5 lo++;6 hi--;7 }8 return nums;9}- 3lo
- 8
- 1
- 9
- 4hi
lo startet beim ersten Element, hi beim letzten.
So funktioniert es
Setze je einen Zeiger an beide Enden. Tausche die beiden Elemente und rücke dann beide Zeiger einen Schritt zur Mitte. Wenn sie sich treffen, steht jedes Element an seiner Spiegelposition. Jedes Element wird einmal angefasst, also O(n) Zeit, und es braucht nur zwei Indexvariablen, also O(1) zusätzlichen Speicher.
Dieses Muster erkennen üben →