まず、配列の左回転を行う最も基本的な方法は、要素を一つずつ左にずらすことです。以下に例を示します。
function rotateLeft(array, rotations) {
for (let i = 0; i < rotations; i++) {
const firstElement = array.shift();
array.push(firstElement);
}
return array;
}
const arr = [1, 2, 3, 4, 5];
const rotations = 2;
const rotatedArray = rotateLeft(arr, rotations);
console.log(rotatedArray); // 結果: [3, 4, 5, 1, 2]
上記の例では、rotateLeft
関数を使用して配列arr
を2回左回転させています。配列の最初の要素を取り出し、配列の末尾に追加することで回転を実現しています。
しかし、この方法は要素を一つずつずらすため、回転する回数が多い場合には効率が悪くなります。次に、より効率的な方法を紹介します。
JavaScriptのslice
メソッドを使用することで、配列の一部を取り出すことができます。配列の左回転では、回転する要素を一度に取り出し、新しい配列を作成することができます。以下に例を示します。
function rotateLeft(array, rotations) {
const rotatedArray = array.slice(rotations).concat(array.slice(0, rotations));
return rotatedArray;
}
const arr = [1, 2, 3, 4, 5];
const rotations = 2;
const rotatedArray = rotateLeft(arr, rotations);
console.log(rotatedArray); // 結果: [3, 4, 5, 1, 2]
上記の例では、slice
メソッドを使用して配列arr
を2回左回転させています。rotations
の数だけ配列の前半部分と後半部分を取り出し、concat
メソッドで結合して新しい配列を作成しています。
これらはJavaScriptで配列の左回転を行うための基本的な方法です。他にも様々なアプローチがありますが、これらの方法を使えばHackerRankの問題で左回転を実装することができるでしょう。
このブログ投稿では、JavaScriptでのHackerRankの配列の左回転についての解説と、基本的なコーディング例を提供しました。もし他の質問や疑問があれば、お気軽にお知らせください。お手伝いできることは喜んでお答えいたします!