代码拉取完成,页面将自动刷新
同步操作将从 陌溪/LearningNotes 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
最大堆和最小堆是二叉堆的两种形式。
最大堆:根结点的键值是所有堆结点键值中最大者,且每个结点的值都比其孩子的值大。
最小堆:根结点的键值是所有堆结点键值中最小者,且每个结点的值都比其孩子的值小
我们首先需要用一个长度为K的数组,来记录最小值,并且这个数组是排序的,首先需要初始化K数组的值,我们设置为最大,然后遍历每次查找的时候,需要从里面的数组进行比较,然后如果大小超过了K,那么把最大的数给剔除。
class Solution:
def GetLeastNumbers_Solution(self, tinput, k):
array = []
if k > len(tinput):
return array
for i in range(k):
array.append(1000000)
for key in tinput:
for index in range(len(array)):
if key < array[index]:
array.insert(index, key)
break
if len(array) > k:
del array[-1]
return array
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。