这题是用数组翻转做的,是不是没想到...
挺神奇的,从题目的例子来看:
123456翻转整个变成654321
然后我们翻转前2位就变成564321,翻转后4位就变成了561234,是不是很神奇....
一开始我还想着用循环移位来做...
答案如下所示:
class Solution {
public:
/**
* 旋转数组
* @param n int整型 数组长度
* @param m int整型 右移距离
* @param a int整型vector 给定数组
* @return int整型vector
*/
vector<int> solve(int n, int m, vector<int>& a) {
m = m%n;
reverse(a.begin(), a.end());
reverse(a.begin(), a.begin()+m);
reverse(a.begin()+m, a.end());
return a;
}
};