思路
在有序队列中找出位置不对的几个数,而不是在无序中找有序的数。
方案
用 tmp 记录最后一个(可能是最大的数),从后往前找,前大后小,就算一个,如果前一个更小,就更新 tmp,让它保持已知的最小。
实现
class Solution: def wwork(self , n , a ): # write code here number = 0 if n <= 1: return number tmp = a[n-1] for i in range(1, n): item = a[n- i -1] if item > tmp: number += 1 continue tmp = item return number