题目:给定一个整数数组 nums
,将数组中的元素向右轮转 k
个位置,其中 k
是非负数。
思路:
代码:
class Solution {public void rotate(int[] nums, int k) {int n = nums.length;k = k % n;reverse(nums, 0, n);reverse(nums, 0, k);reverse(nums, k, n);}private void reverse(int[] nums, int start, int end) {while(start < end) {int tmp = nums[start];nums[start] = nums[end - 1];nums[end - 1] = tmp;start++;end--;}}
}
性能:时间复杂度O(n) 空间复杂度O(1)