Rotate Array by K
Rotate an array to the right by k positions.
Sample input
[1, 2, 3, 4, 5], k = 2
Sample output
4 5 1 2 3
Solution
arr = [1, 2, 3, 4, 5]
k = 2
n = len(arr)
k %= n
result = arr[-k:] + arr[:-k]
print(*result)
const arr = [1, 2, 3, 4, 5];
let k = 2;
const n = arr.length;
k %= n;
const result = arr.slice(n - k).concat(arr.slice(0, n - k));
console.log(result.join(" "));
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int k = 2, n = arr.length;
k %= n;
int[] result = new int[n];
for (int i = 0; i < n; i++) {
result[(i + k) % n] = arr[i];
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append(result[i]);
if (i < n - 1) sb.append(" ");
}
System.out.println(sb.toString());
}
}
fun main() {
val arr = intArrayOf(1, 2, 3, 4, 5)
var k = 2
val n = arr.size
k %= n
val result = IntArray(n)
for (i in 0 until n) {
result[(i + k) % n] = arr[i]
}
println(result.joinToString(" "))
}
let arr = [1, 2, 3, 4, 5]
let n = arr.count
let k = 2 % n
var result = Array(repeating: 0, count: n)
for i in 0..<n {
result[(i + k) % n] = arr[i]
}
print(result.map { String($0) }.joined(separator: " "))
void main() {
List<int> arr = [1, 2, 3, 4, 5];
int n = arr.length;
int k = 2 % n;
List<int> result = List.filled(n, 0);
for (int i = 0; i < n; i++) {
result[(i + k) % n] = arr[i];
}
print(result.join(' '));
}
#include <iostream>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = 5, k = 2;
k %= n;
int result[5];
for (int i = 0; i < n; i++) {
result[(i + k) % n] = arr[i];
}
for (int i = 0; i < n; i++) {
cout << result[i];
if (i < n - 1) cout << " ";
}
cout << endl;
return 0;
}
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = 5, k = 2;
k %= n;
int result[5];
for (int i = 0; i < n; i++) {
result[(i + k) % n] = arr[i];
}
for (int i = 0; i < n; i++) {
printf("%d", result[i]);
if (i < n - 1) printf(" ");
}
printf("\n");
return 0;
}