题目:
度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?
解答人的思路是
上面出现的前提是每个数字只能移动一次,根据题意移动一次就可以排序成符合题意的答案,最重要的一句话就是检查有多少已经排好序的元素的个数
程序:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num =scan.nextInt();
int []a = new int[num];
int []sorta = new int[num];
for(int i=0;i<num;i++) {
a[i]=scan.nextInt();
sorta[i]=a[i];
}
Arrays.sort(sorta);
int count =0;
int j=0;
for(int i=0;i<num;i++) {
if(a[i]==sorta[j]) {
count++;
j++;
}
}
System.out.println(num-count);
}
}