問題
悪党の配管工とその兄弟が走り回って、またステージにダメージを与えているようです。
これ以上苦情を受ける前に、レベルのステージを接続するパイプを修正する必要があります。
最初のパイプの後の各パイプが前のパイプより 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 サイトの他の関連記事を参照してください。