Isu
Nampaknya beberapa tukang paip penjahat dan abangnya telah berlari-lari dan merosakkan panggung anda lagi.
Paip yang menyambungkan peringkat tahap anda bersama-sama perlu diperbaiki sebelum anda menerima sebarang aduan lagi.
Paip adalah betul apabila setiap paip selepas yang pertama adalah 1 lebih banyak daripada yang sebelumnya.
Tugas
Memandangkan senarai nombor unik yang diisih dalam tertib menaik, kembalikan senarai baharu supaya nilai meningkat sebanyak 1 untuk setiap indeks daripada nilai minimum sehingga nilai maksimum (kedua-duanya disertakan).
Contoh
Input: 1,3,5,6,7,8 Output: 1,2,3,4,5,6,7,8
Langkah 1:
Pertama, kita perlu mencari nilai maksimum dan minimum. Saya tahu apa yang anda fikirkan, kita boleh menggunakan Math.max dan Math.min.
Dalam senario ini, itu tidak berlaku. Ia adalah pendekatan yang sah tetapi ia tidak diperlukan kerana senarai input telah diisih dalam tertib menaik.
Apabila diisih, ia adalah jaminan bahawa elemen pada indeks 0(iaitu nombor[0]) ialah nilai terkecil, sama seperti elemen terakhir. Oleh itu, mengakses terus elemen pertama dan terakhir adalah lebih cekap dan mudah.
Jadi, kami mencari nombor pada indeks 0 dan yang terakhir dan memulakan beberapa pembolehubah untuk menyimpan nilai ini untuk kami:
let minVal = numbers[0]; let maxVal = numbers[numbers.length - 1];
Langkah 2:
Selepas itu, kami mencipta tatasusunan kosong untuk menyimpan nilai diisih baharu:
let newNums = [];
Langkah 3:
Gelung seluruh senarai
biar i = minVal; memulakan pembilang gelung i kepada nilai minVal. Di sinilah gelung kami akan bermula.
i <= maxVal; ialah keadaan gelung. Gelung akan terus berjalan selagi i kurang daripada atau sama dengan maxVal. Sebaik sahaja saya melebihi maxVal, gelung berhenti.
i++ berfungsi sebagai incrementor kami. Selepas setiap lelaran bagi gelung kami, nilai i dinaikkan sebanyak 1
Langkah 4:
Susulan itu, kami menambahkan nilai tambah i pada tatasusunan kosong kami newNums menggunakan kaedah array.push().
Kemudian, kami mengembalikan nilai akhir tatasusunan newNums kami.
function pipeFix(numbers) { // find the minimum and maximum values in the list let minVal = numbers[0]; let maxVal = numbers[numbers.length - 1]; // create an array to store the sorted values in ascending order let newNums = []; // loop through the sorted array, from smallest value to the largest for (let i = minVal; i <= maxVal; i++) { newNums.push(i); } return newNums; }
Saya harap artikel ini membantu. Jika anda menyukai artikel tersebut, sila tinggalkan suka dan jangan ragu untuk meninggalkan sebarang kebimbangan di bahagian komen. Itu sahaja untuk hari ini.
Atas ialah kandungan terperinci Penyelesaian: Masalah Paip Lario dan Muigi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!