三次翻转,第一次先整体翻转,第二次和第三次分别把0~m-1和m~length-1长度进行翻转即科满足要求

import java.util.*;


public class Solution {
    /**
     * 旋转数组
     * @param n int整型 数组长度
     * @param m int整型 右移距离
     * @param a int整型一维数组 给定数组
     * @return int整型一维数组
     */
    public int[] solve (int n, int m, int[] a) {
        // write code here
        m = m%n;
        reverse(a,0,a.length-1);
        reverse(a,0,m-1);
        reverse(a,m,a.length-1);
        return a;
    }
    public void reverse(int[] a, int start, int end){
        while(start<end){
            swap(a,start,end);
            start++;
            end--;
        }
    }
    public void swap(int[] a,int start,int end){
        int temp = a[start];
        a[start] = a[end];
        a[end] = temp;
    }
}