題目大意: 將數(shù)組向前循環(huán)移動(dòng)k位。

1.翻轉(zhuǎn)數(shù)組
class Solution {
public:
void rotate(vector<int>& nums, int k) {
k = k % nums.size();
if (k == 0)
return;
std::reverse(nums.begin(), nums.end());
std::reverse(nums.begin(), nums.begin() + k);
std::reverse(nums.begin()+k, nums.end());
}
};
2.內(nèi)存拷貝
class Solution {
public:
void rotate(vector<int>& nums, int k) {
k = k % nums.size();
if (k == 0)
return;
int* ptr = new int[nums.size()];
std::memcpy(ptr, nums.data() +(nums.size()-k), sizeof(int)*k);
std::memcpy(ptr + k, nums.data(), sizeof(int)*(nums.size() - k));
std::memcpy(nums.data(), ptr, sizeof(int)*nums.size());
delete ptr;
}
};
3.循環(huán)遍歷
class Solution {
public:
void rotate(vector<int>& nums, int k) {
}
};