每次只能对连续的n-1个数进行排序,找排序的次数。

  • 如果原数组已经是顺序的,排序次数为0.
  • 如果最大值在在原数组的最后一个位置上,或者最小值在原数组的第一个位置上,那需要排序的次数就为1.
  • 如果最大值在原数组的第一个位置上,并且最小值在原数组的最后一个位置上,那需要排序的次数就为3.
  • 其他的情况下排序次数为2.
import java.util.*;
public class Main{
    public static void main(String arg[]){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] number=new int[n];
        int[] number2=new int[n];
        for(int i=0;i<n;i++){
            number[i]=sc.nextInt();
            number2[i]=number[i];
        }
        Arrays.sort(number2);
        if(Arrays.toString(number).equals(Arrays.toString(number2))){
            System.out.print(0);
        }else if(number[0]==number2[0]||number[n-1]==number2[n-1]){
            System.out.print(1);
        }else if(number[0]==number2[n-1]&&number[n-1]==number2[0]){
            System.out.print(3);
        }else{
            System.out.print(2);
        }
    }
}