这题其实特殊性很强,如果不看题解估计想一天都想不到这么好的解决方法
先反转整个数组 ,再从位置k开始分为两个数组分别反转,即可获得目标数组。
var rotate = function(nums, k) {
const n = nums.length
if ((k %= n) === 0) return
reverse(nums, 0, n - 1)
reverse(nums, 0, k - 1)
reverse(nums, k, n - 1)
};
const reverse = (nums, l, r) => {
while (l < r) {
let t = nums[l]
nums[l++] = nums[r]
nums[r--] = t
}
}