题目

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

题解
class Solution {
public:
    void rotate(vector<int>& nums, int k) {
    	int len = nums.size();
	vector<int>n=nums;
	if (len < k)
	{
		k %= len;
	}
	if (nums.size() == 1 || nums.size() == 0 || k == 0
		)
	{
		return;
	}
	stack<int> s1;
	for (int i = 0; i < k; i++)
	{
		s1.push(n[len - i - 1]);
	}
	for (int i = 0; i < k; i++)
	{
		nums[i] = s1.top();
		s1.pop();

	}
	for (int i = len - k - 1; i >= 0; i--)
	{
		s1.push(n[i]);
	}	
	for (int i = k; i < len; i++)
	{
		nums[i] = s1.top();
		s1.pop();
	}
   
        }
         
};