首頁 > web前端 > js教程 > 主體

解決方案:Lario 和 Muigi 管道問題

PHPz
發布: 2024-09-04 16:38:10
原創
1001 人瀏覽過

Solution: Lario and Muigi Pipe Problem

問題
看起來像是某個流氓水管工和他的兄弟又到處亂跑,破壞了你的舞台。

在您收到更多投訴之前,需要先修復連接關卡各個階段的管道。

當第一個管道之後的每個管道比前一個管道多 1 時,管道是正確的。

任務
給定一個按升序排序的唯一數字列表,傳回一個新列表,以便每個索引的值從最小值到最大值(包括兩者)遞增 1。

範例
輸入:1,3,5,6,7,8 輸出:1,2,3,4,5,6,7,8

解決方案分解

第 1 步:

首先,我們必須找到最大值和最小值。我知道你在想什麼,我們可以用 Math.max 和 Math.min。

在這種情況下,情況並非如此。這是一種有效的方法,但沒有必要,因為輸入清單已經按升序排序。

排序時,保證索引0處的元素(即numbers[0])是最小值,與最後一個元素相同。因此,直接存取第一個和最後一個元素更有效率和直接。

因此,我們找到索引 0 處的數字和最後一個數字,並初始化一些變數來為我們儲存這些值:

    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];
登入後複製

第 2 步:

之後,我們建立一個空數組來儲存新的排序值:

    let newNums = [];
登入後複製

第三步:

循環整個清單

設 i = minVal;將循環計數器 i 初始化為 minVal 的值。這是我們的循環開始的地方。

i

i++ 充當我們的增量器。每次迭代 for 迴圈後,i 的值會增加 1

第 4 步:

接下來,我們使用 array.push() 方法將 i 的遞增值附加到空數組 newNums 中。

然後,我們傳回陣列 newNums 的最終值。

最終解決方案

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;
}
登入後複製

希望這篇文章對您有幫助。如果您喜歡這篇文章,請點贊,並隨時在評論部分留下任何疑問。這就是今天的全部內容。

以上是解決方案:Lario 和 Muigi 管道問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!