Penyelesaian: Masalah Paip Lario dan Muigi

PHPz
Lepaskan: 2024-09-04 16:38:10
asal
1031 orang telah melayarinya

Solution: Lario and Muigi Pipe Problem

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

Pecahan Penyelesaian

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];
Salin selepas log masuk

Langkah 2:

Selepas itu, kami mencipta tatasusunan kosong untuk menyimpan nilai diisih baharu:

    let newNums = [];
Salin selepas log masuk

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.

Penyelesaian Akhir

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;
}
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan