1.解决此题的核心在于明白排序的规律,此题中,我们每次只能排列连续的n-个数。我们通过一个普通的序列可知,如歌排列前与排列后是等同的,那么需要0次排序即可;如果排列前与排列后的首个数字或尾部数子有一个相同,那么我们只需排列前n-1个数或者后n-1个数即可完成排序,也就是只需1次即可;如果排列前与排列后的首尾位置相反的话,我们至少需要进行三次排列即可完成排序(具体为什么是三次可在草稿纸演算过程);如果不是以上三种情况那么就是需要排序两次了。 2.用到的方法有: ①Arrays.sort()方法,此方法是将数组排序,按照从小到大的顺序排列 ②Arrays.toString()方法,此方法是以数组的形式表示,常用于比较两个数组是否相等(用equals比较)和数组形式输出
import java.util.*;
public class Main {
public static void main(String []args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] s=new int[n];
int[] s1=new int[n];
for(int i=0;i<n;i++){
s[i]=sc.nextInt();
s1[i]=s[i];
}
Arrays.sort(s1);
if(Arrays.toString(s).equals(Arrays.toString(s1))) {
System.out.println(0);
}
else if(s[0]==s1[0] || s[n-1]==s1[n-1]) {
System.out.println(1);
}
else if(s[0]==s1[n-1] && s[n-1]==s1[0]) {
System.out.println(3);
}
else {
System.out.println(2);
}
}
}