题解 | #最小的K个数#

最小的K个数

http://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf

-- coding:utf-8 --

class Solution:
def GetLeastNumbers_Solution(self, tinput, k):
# write code here
#0.首先把前k个数放入结果集rs中,并从小到大排序;
#1.先找到前k个数中最小值和最大值tinput[0],tinput[k-1]
#2.从数组中第5个元素开始遍历,对于当前元素x:
# 判断x是否>=tinput[k-1],如果满足该条件,则continue;
# 否则,将x插入到rs中,并剔除rs中的尾元素;
#3.返回rs
#4.时间复杂度:k*(n-k),其中n为tinput数组长度;
if k>=len(tinput):return tinput
if k<=0:return []
rs=sorted(tinput[:k])
for x in tinput[k:]:
if x<rs[-1]:
for i in range(k):
if x<=rs[i]:
rs.insert(i,x)
break
v=rs.pop()
return rs

全部评论

相关推荐

momo_校招版:给佬跪了 我周末三场都有点嫌多了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务