1、从数组后面往前进行维护有序队列。并维护有序队列的最小值。
2、如果有序队列前一个数字比有序队列的最小值大,则需要进行一次选择使队列成为有序队列。
3、直到数组头,循环结束。
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param n int整型 * @param a int整型一维数组 * @return int整型 */ public int wwork (int n, int[] a) { // write code here int min = a[n-1];//有序队列的最小值 int res = 0;//选择次数 for(int i= n-2;i>=0;i--){//从数组后往前维护有序队列 if(a[i]<min){ min = a[i];//维护最小值 }else{ res +=1;//选择次数加一 } } return res; } }