-
入力として与えられた配列、回転回数、クエリのインデックスを取得します。
-
回転回数を配列の長さで割った余りを計算します。これは、実際に要素を右に回転させる回数です。例えば、配列の長さが5で回転回数が7の場合、実際に要素を2回右に回転させることになります。
-
配列の要素を回転させるために、スライスを使用します。スライスを使うことで、回転させたい要素を配列の末尾に移動させることができます。具体的には、配列の末尾から回転回数分の要素を取得し、それを配列の先頭に追加します。
-
クエリのインデックスに対応する要素を返します。
以下は、上記の手順を実装したJavaScriptのコード例です。
function circularArrayRotation(arr, rotations, queries) {
const actualRotations = rotations % arr.length;
const rotatedArray = arr.slice(-actualRotations).concat(arr.slice(0, -actualRotations));
const results = queries.map(index => rotatedArray[index]);
return results;
}
// 使用例
const arr = [1, 2, 3, 4, 5];
const rotations = 2;
const queries = [0, 2, 4];
const result = circularArrayRotation(arr, rotations, queries);
console.log(result); // [4, 1, 3]
このコードでは、circularArrayRotation
という関数を定義し、与えられた配列 arr
を回転させ、指定されたクエリのインデックスに対応する要素を返しています。上記の使用例では、配列 [1, 2, 3, 4, 5]
を2回右に回転させ、インデックス 0
、2
、4
の要素を取得しています。