python2.7
最小的 k 个数
例子说明:
例如输入 4 、5 、1、6、2、7、3 、8 这 8 个数字,则最小的 4 个数字是 1 、2、3 、4
思路:最简单的方法,将数组排序,求前k个数(后续改进)
#coding:utf-8
def kuaisu(a):
low = []
high = []
middle = []
if len(a) < 1:
return a
else:
baseline = a[0]
for i in a:
if i < baseline:
low.append(i)
elif i > baseline:
high.append(i)
else:
middle.append(i)
low_arr = kuaisu(low)
high_arr = kuaisu(high)
return low_arr+middle+high_arr
def k_numbers(a,k):
sort_arr = kuaisu(a)
print(sort_arr[0:k])
k_numbers([6,7,8,1,2,3,10,11,12,5],3)
面向对象
# -*- coding:utf-8 -*-
class Solution:
def GetLeastNumbers_Solution(self, tinput, k):
tinput.sort()
if k > len(tinput):
return []
else:
return tinput[0:k]