题目 :给定一个整数数组 nums
,将数组中的元素向右轮转 k
个位置,其中 k
是非负数。
思路 :
代码:
java
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)