const rotate1 = function(nums, k) {
let len = nums.length;
for(let i = 0; i < k; i++) {
let pivot = nums[len - 1];
for(let j = len - 2; j >= 0; j--) {
nums[j + 1] = nums[j];
}
nums[0] = pivot;
}
return nums;
};
const rotate2 = function(nums, k) {
let len = nums.length;
const newarr = new Array(len);
for(let i = 0; i < len; i++) {
newarr[(i + k) % len] = nums[i];
}
return newarr;
}
const rotate3 = function(nums, k) {
let len = nums.length;
let kk = k % len;
let count = 0;
for (let i = 0; count < len; i++) {
let start = i;
let prev = nums[i];
do {
let next = (start + kk) % len;
let temp = nums[next];
nums[next] = prev;
prev = temp;
start = next;
count++;
} while(start !== i)
}
return nums;
};
function reverse(nums, start, end) {
while(start < end) {
let temp = nums[end];
nums[end] = nums[start];
nums[start] = temp;
start++;
end--;
}
}
const rotate4 = function(nums, k) {
let kk = k % nums.length;
reverse(nums, 0, nums.length - 1);
reverse(nums, 0, kk - 1);
reverse(nums, kk, nums.length - 1);
return nums;
}
const arr1 = [1,2,3,4,5,6,7], k = 3;
console.log(rotate1(arr1, k));
const arr2 = [1,2,3,4,5,6,7];
console.log(rotate2(arr2, k));
const arr3 = [1,2,3,4,5,6,7];
console.log(rotate3(arr3, k));
const arr4 = [1,2,3,4,5,6,7];
console.log(rotate4([-1], 2));