每次只能对连续的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);
}
}
}