答案只有0,1,2,3四种情况:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Integer> v = new ArrayList<>();
int mx = Integer.MIN_VALUE, mn = Integer.MAX_VALUE;
for(int i = 0; i < n; ++i){
int a = sc.nextInt();
if(mx < a) mx = a;
if(mn > a) mn = a;
v.add(a);
}
List<Integer> temp = new ArrayList<>(v);
Collections.sort(temp);
if(temp.equals(v)){ //本来就排好序的返回0
System.out.println(0);
return;
}
if(v.get(v.size() - 1) == mx || v.get(0) == mn){ //最大或最小归位的,1次
System.out.println(1);
return;
}
int r = 1;
if(v.get(0) == mx) r++; //最大值在首位,多挪动1次
if(v.get(v.size() - 1) == mn) r++; //最小值在末尾,多挪动1次
if(v.get(0) != mn && v.get(v.size() - 1) != mx) r++; //最大最小都在中间
System.out.println(r);
}
}
京公网安备 11010502036488号