佬们没参加笔试 这个对不 int num = 0; int start = arr.length - 1; for(;start > 0;) { int c = start; do{ c--; if(c == 0) break; } while (arr[c] >= arr[c-1]); //表示有序直接返回 if(c == 0) break; if(cur >= arr[c] &amp;&amp; cur <= arr[c+1]) { cur = arr[c]; num++; }else{ while(arr[start] >= cur &amp;&amp; start != c){ start--; } cur = arr[c]; num += start - c + 1; } start = c-1; } System.out.println(num);