rotate array 旋转数组
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++;
}
}
//-------------------
//解法三 ? 三次旋轉;很巧妙
//--------------------?
?
};
轉載于:https://www.cnblogs.com/julie-yang/p/4650542.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的rotate array 旋转数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 15-07-10 结构体-输入学生成绩
- 下一篇: poj 2251 Dungeon Mas