def GetLeastNumbers(self, tinput, k):
import heapq
if tinput == None or len(tinput) < k or len(tinput) <= 0 or k <= 0:
return []
output = []
for number in tinput:
if len(output) < k:
output.append(number)
else:
# ?????? ???
# output = heapq.nsmallest(k, output)
# if number >= output[-1]:
# continue
# else:
# output[-1] = number
# ?????? ??
output = heapq.nlargest(k, output)
if number >= output[0]:
continue
else:
output[0] = number
return output[::-1] # ???? return output
评论列表
文章目录