题解 | #最小的K个数#

最小的K个数

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

用快速排序法做:
# -*- coding:utf-8 -*-
class Solution:
    def quicksort(self,array):
        if len(array)<2:
            return array
        if len(array)==2:
            if array[0]>array[1]:
                tmp=array[0]
                array[0]=array[1]
                array[1]=tmp
            return array
        else:
            pivot=array[0]
            left,right=[],[]
            for i in range(1,len(array)):
                if array[i]<=pivot:
                    left.append(array[i])
                else:
                    right.append(array[i])

            return self.quicksort(left)+[pivot]+self.quicksort(right)
    def GetLeastNumbers_Solution(self, tinput, k):
        if tinput==[]&nbs***bsp;k>len(tinput):
            return []
        tinput=self.quicksort(tinput)
#         out=[tinput[i] for i in range(0,k)]
        out=tinput[:k]
        
        return out
            
        # write code here


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务