我在python中一遍又一遍地遇到这些类似的问题。我想掌握解决这类问题的方法。请帮我。
问题类似于“在数组中找到第3大(或第2大或有时第k大)元素(或项目)而没有排序”有时会出现另一个条件“,其中O或n的比较”或“最小) 时间”。我该如何处理?或者如何为此编写算法?
谢谢!
答案 0 :(得分:0)
如果您不想要第3大号,请将n
更改为相应的号码。
largest[0]
是第n个最大数字。
n=3
haystack=[1,2,3]
largest=[0]*n
for a in haystack:
k=n
for i in range(n):
if a<=largest[i]:
k=i
break
if k:
k-=1
for j in range(k):
largest[j]=largest[j+1]
largest[k]=a