Hello, kawan-kawan! Kali ini saya ingin berkongsi tentang cabaran Least Larger daripada CodeWars. Cabaran ini benar-benar mengujakan kerana ia melatih logik dan pemikiran yang sistematik, serta memberi gambaran tentang bagaimana konsep ini boleh berguna di dunia nyata. Ayuh, kita bincangkan bersama!
Jadi, kita diberikan tatasusunan nombor dan indeks tertentu. Tugas kita ialah mencari nombor terkecil yang lebih besar daripada elemen pada indeks itu, kemudian kembalikan indeks. Jika tiada nombor yang sepadan, kita mesti kembalikan -1.
Contoh:
Susun: [4, 1, 3, 5, 6]
Indeks: 0 (nombor rujukan ialah 4)
Hasilnya ialah 3, kerana nombor terkecil yang lebih besar daripada 4 ialah 5, iaitu pada indeks 3.
kenapa boleh jadi 3?
Tatasusunan bermula dari 0
jadi:
4 : indeks 0
1 : indeks 1
3 : indeks 2
5 : indeks 3
6 : indeks 4
Untuk menyelesaikan cabaran ini, saya mencipta fungsi yang dipanggil leastLarger. Ini kodnya:
function leastLarger(a, i) { let smaller = Infinity; // Nilai pembanding awal let result = -1; // Default hasil kalau nggak ada elemen yang memenuhi for (let index = 0; index < a.length; index++) { if (a[index] > a[i] && a[index] < smaller) { smaller = a[index]; // Update nilai terkecil yang lebih besar result = index; // Simpan indeks elemen } } return result; // Kembalikan hasil }
Permulaan
Lelaran Tatasusunan
Keputusan Pengembalian
console.log(leastLarger([4, 1, 3, 5, 6], 0)); // Output: 3
Penjelasan:
Bagi anda yang suka pendekatan yang lebih "JavaScript sahaja", kami boleh menulis penyelesaian ini dalam satu baris kod menggunakan kaedah terbina dalam seperti penapis, Math.min dan findIndex:
function leastLarger(a, i) { let smaller = Infinity; // Nilai pembanding awal let result = -1; // Default hasil kalau nggak ada elemen yang memenuhi for (let index = 0; index < a.length; index++) { if (a[index] > a[i] && a[index] < smaller) { smaller = a[index]; // Update nilai terkecil yang lebih besar result = index; // Simpan indeks elemen } } return result; // Kembalikan hasil }
Kod ini melakukan perkara yang sama, tetapi dalam gaya yang lebih berfungsi dan ringkas. Bagus untuk situasi di mana anda ingin menulis penyelesaian pantas tanpa terlalu banyak pembolehubah tambahan.
Fungsi seperti ini sebenarnya agak relevan dalam pelbagai situasi sebenar. Beberapa contoh:
Sistem Tempahan Tiket
Penjadualan Tugas
Pengurusan Inventori
Cabaran ini kelihatan mudah, tetapi apabila saya mencubanya, saya menyedari bahawa logik yang kemas adalah sangat penting. Apa yang saya suka tentang cabaran ini ialah sejauh mana konsep ini relevan untuk diterapkan dalam dunia sebenar.
Oh ya, kalau kawan-kawan ada cara lain untuk menyelesaikan cabaran ini, jangan segan silu share di ruangan komen, OK! Mana tahu, kita mungkin belajar daripada pendekatan berbeza antara satu sama lain. Semoga perkongsian ini bermanfaat, dan selamat mengekod! ?
Atas ialah kandungan terperinci Berkongsi Penyelesaian Cabaran CodeWars: Paling Kecil, daripada Asas kepada Aris. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!