var rotate = function(nums, k) {
// ex. [1,2,3] k=5 與 [1,2,3] k=2 相同
var step = k % nums.length;
var temp = [];
// 將向右旋轉的元素裝到temp, [1,2,3] k=2, temp = [2,3]
for(var i = step - 1 ; i >= 0 ; i--) {
var index = nums.length - 1 - i;
temp.push(nums[index]);
}
for(var j = nums.length - 1; j >= 0 ; j--){
if( j >= step){
// 將nums內沒被旋轉的元素往後移k格,[1,2,3] -> [x,x,1]
nums[j] = nums[j-step];
} else {
// 將temp放到nums的前面 [2,3,1]
nums[j] = temp[j];
}
}
};
LeetCode 189. Поворот массива JavaScript
schedule
22.05.2024