这几天终于刷到,好懂的题目了,之前题目都看不懂,呜呜
vector<int> solve(int n, int m, vector<int>& a) {
// write code here
vector<int> res;
m %= n;//!!!避免反复取重
for(int i=n-m; i<n; i++) res.push_back(a[i]);
for(int i=0; i<n-m; i++) res.push_back(a[i]);
return res;
}
class Solution {
public:
vector<int> solve(int n, int m, vector<int>& a) {
//取余,因为每次长度为n的旋转数组相当于没有变化
m = m % n;
//第一次逆转全部数组元素
reverse(a.begin(), a.end());
//第二次只逆转开头m个
reverse(a.begin(), a.begin() + m);
//第三次只逆转结尾m个
reverse(a.begin() + m, a.end());
return a;
}
};