最简单易懂的方式:一个一个把最后面的往前挪,挪M次
python
class Solution:
def solve(self , n: int, m: int, a: List[int]) -> List[int]:
for i in range(0, m):
a.insert(0, a[-1])
del a[-1]
return a
c++
class Solution {
public:
vector<int> solve(int n, int m, vector<int>& a) {
for(int i=0; i<m; i++){
a.insert(a.begin(), a[a.size()-1]);
a.erase(a.end()-1);
}
return a;
}
};
当然,python的话其实切片更简单。
python
class Solution:
def solve(self , n: int, m: int, a: List[int]) -> List[int]:
L = len(a)
m = m % n
return a[L-m:] + a[:L-m]