码迷,mamicode.com
首页 > 编程语言 > 详细

rotate array 旋转数组

时间:2015-07-16 11:06:14      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

class Solution {
public:
void rotate(vector<int>& nums, int k) {

int n=nums.size();
int i=0;

/*

//-------------------

//解法一  会超时

//--------------------
k=k%n;
while(i<k){
  int temp=nums[n-1];
  for(int j=n-1;j>0;j--){
    nums[j]=nums[j-1];
  }
  nums[0]=temp;
  i++;
  }
*/

//-------------------

//解法二

//--------------------

 

vector<int> num1;  新开一个数组,存放
k=k%n;
if(k==0) return;
while(i<k)
{
  num1.push_back(nums[n-k+i]);
  i++;
}
i=0;
while(i<n-k)
{
  num1.push_back(nums[i]);
  i++;
}
i=0;
while(i<n)
{
  nums[i]=num1[i];
  i++;
}

}

//-------------------

//解法三   三次旋转;很巧妙

//--------------------

 

 

 

 

 


};

rotate array 旋转数组

标签:

原文地址:http://www.cnblogs.com/julie-yang/p/4650542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!