题目
题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。
示例1
输入
[4,5,1,6,2,7,3,8],4
返回值
[1,2,3,4]
一、思路
【思路】
采用冒泡算法,每次将最小的数值冒泡到列表头部,经过k次冒泡,即完成最小k个数的提取
【边界情况】
- k<1
- k>len(tinput)
二、代码
# -*- coding:utf-8 -*-
class Solution:
def GetLeastNumbers_Solution(self, tinput, k):
# write code here
if k<1 or k>len(tinput): return []
length=len(tinput)
for i in range(0,length-1):
if i==k:break
for j in range(length-1,0+i,-1):
if tinput[j]<tinput[j-1]:
tmp=tinput[j]
tinput[j]=tinput[j-1]
tinput[j-1]=tmp
return tinput[:k]
三、总结
这道考题,采用冒泡比较简单,注意提前终止冒泡即可,没必要全部排序再提取k个最小值