思路
在有序队列中找出位置不对的几个数,而不是在无序中找有序的数。
方案
用 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
京公网安备 11010502036488号