// 借助vector来完成
// 直接reverse函数实现
//1
class Solution {
public:
void reverse(vector<int> &nums,int l,int r)
{
if(l >= r) return;
while(l <= r)
{
int temp = nums[l];
nums[l] = nums[r];
nums[r] = temp;
l++;
r--;
}
}
void rotate(vector<int>& nums, int k)
{
k = k%nums.size();
int m = nums.size() - k;
reverse(nums,0,m-1);
reverse(nums,m,nums.size()-1);
reverse(nums,0,nums.size()-1);
}
};
//2
#include <vector>
using namespace std;
class Solution {
public:
void rotate(vector<int>& nums, int k) {
if(nums.empty())
return ;
int len = nums.size();
if(k>len)
k = k%len;
vector<int> temp;
for(int i=len-k;i<len;i++){
temp.push_back(nums[i]);
}
for(int j=0;j<len-k;j++){
temp.push_back(nums[j]);
}
nums = temp;
}
};
46 - 算法 -Leetcode-189-旋转数组-数据结构vector或者reverse函数
最新推荐文章于 2022-07-28 08:38:29 发布