import java.util.*;
public class Solution {
// 从1开始,n是数组长度,m是移动数
// 像后面整体移动几个就相当于,反转 移动数与数组长度 到前面
public int[] solve (int n, int m, int[] a) {
// 进行三次反转,直到反转成目标样
// 第一次整体反转,第二次将左边m个数反转,
// 第三次将右边n-m个数反转
// 将移动次数取与,数组长度可能小于移动数
m = m%n;
reverse(a,0,n-1);
reverse(a,0,m-1);
reverse(a,m ,n-1);
return a;
}
//反转函数
public void reverse(int[] nums, int start, int end){
while(start < end){
swap(nums, start++, end--);
}
}
public void swap(int[] num,int start,int end){
int tmp = num[start];
num[start] = num[end];
num[end] = tmp;
}
}