Rumah >Java >javaTutorial >Jumlah lompatan minimum untuk mencapai hujung menggunakan java
Definisi Masalah:
Diberi array, di mana setiap elemen arr[]
menunjukkan bilangan maksimum langkah yang boleh anda ambil dari kedudukan itu, tentukan bilangan lompatan minimum untuk mencapai indeks terakhir. arr[i]
Algoritma:
Algoritma menggunakan pendekatan tamak, melangkah melalui array dan menjejaki indeks yang boleh dicapai paling jauh () pada setiap langkah. Ia mengekalkan kaunter maxReach
dan jumps
untuk menjejaki kemajuan dalam setiap lompat. steps
Inisialisasi:
jumps
maxReach
. arr[0]
steps
. arr[0]
iTeration:
arr[i]
maxReach
dan maxReach
(indeks yang boleh dicapai paling jauh dari kedudukan semasa). i arr[i]
steps
steps
jumps
maxReach
, ini bermakna kita terjebak dan tidak dapat mencapai lebih jauh. Kembali -1. i
steps
(langkah -langkah yang tinggal di lompat seterusnya). maxReach - i
Penamatan:
jumps
Java Code:
<code class="language-java">public class MinJumpsToEnd { public static int minJumps(int[] arr) { int n = arr.length; if (n <= 1) return 0; // Already at the end or empty array int jumps = 0; int maxReach = arr[0]; int steps = arr[0]; for (int i = 1; i < n; i++) { maxReach = Math.max(maxReach, i + arr[i]); // Update maxReach steps--; // Decrement steps if (steps == 0) { // Jump needed jumps++; if (maxReach <= i) return -1; // Unreachable steps = maxReach - i; // Reset steps for next jump } if (i == n-1) return jumps; // Reached the end } return jumps; } public static void main(String[] args) { int[] arr = {2, 3, 1, 1, 2, 4, 2, 0, 1, 1}; System.out.println("Minimum jumps required: " + minJumps(arr)); // Output: 4 } }</code>
kerumitan masa dan ruang:
Penjelasan dan kod yang lebih baik ini memberikan pemahaman yang lebih jelas tentang algoritma dan pelaksanaannya. Komen tambahan meningkatkan kebolehbacaan dan pengendalian kes kelebihan (array kosong atau tunggal) menjadikan kod itu lebih mantap.
Atas ialah kandungan terperinci Jumlah lompatan minimum untuk mencapai hujung menggunakan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!