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;
}
} 


京公网安备 11010502036488号