189. Rotate Array
Rotate an array of n elements to the right by k steps.
For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7]
is rotated to [5,6,7,1,2,3,4]
.
Note:
Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
给定一个n个长度的数组,将它向右旋转k个位置。
1 private void reverse(int nums[],int begin,int end) 2 { 3 while(begin<end) 4 { 5 int temp = nums[begin]; 6 nums[begin] = nums[end]; 7 nums[end] = temp; 8 begin++;end--; 9 } 10 } 11 12 public void rotate(int[] nums, int k) { 13 if (k ==0) return; 14 if (nums.length < 2) return; 15 k %= nums.length; 16 reverse(nums,0,nums.length - 1); 17 reverse(nums,0,k - 1); 18 reverse(nums,k,nums.length - 1); 19 }