leetcode Rotate Array

题目连接

https://leetcode.com/problems/rotate-array/  

Rotate Array

Description

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].

class Solution {
public:
	void Reverse(vector<int>& nums, int i, int j) {
		for(; i < j; i++, j--) {
			int ret = nums[i];
			nums[i] = nums[j];
			nums[j] = ret;
		}
	}
	void rotate(vector<int>& nums, int k) {
		size_t n = nums.size();
		if (!n || !(k % n)) return;
		k %= n;
		Reverse(nums, 0, n - k -1);
		Reverse(nums, n - k, n - 1);
		Reverse(nums, 0, n - 1);
	}
};
原文地址:https://www.cnblogs.com/GadyPu/p/5033983.html