最简单易懂的方式:一个一个把最后面的往前挪,挪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]