ホームページ  >  記事  >  ウェブフロントエンド  >  解決策: ラリオとムイジのパイプ問題

解決策: ラリオとムイジのパイプ問題

PHPz
PHPzオリジナル
2024-09-04 16:38:101002ブラウズ

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 = [];

ステップ 3:

リスト全体をループします

let 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;
}

この記事がお役に立てば幸いです。記事が気に入ったら、「いいね!」を残し、コメント欄に遠慮なく質問を残してください。今日はここまでです。

以上が解決策: ラリオとムイジのパイプ問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。