189. 轮转数组
题目:
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
解题思路:
这道题思路比较简单,三次反转,第一次反转整个数组,然后分别反转0 ~ k-1,k ~ n-1;
需要注意的是处理一下k,对n取模。
class Solution {public void rotate(int[] nums, int k) {int n = nums.length;k %= n; reverse(nums, 0, n-1);reverse(nums, 0, k-1);reverse(nums, k, n-1);}private void reverse(int[] nums, int start, int end){while(start < end){int temp = nums[start];nums[start] = nums[end];nums[end] = temp;start++;end--;}}
}