python | #最小的K个数#

最小的K个数

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

# -*- coding:utf-8 -*-
class Solution:
    def GetLeastNumbers_Solution(self, tinput, k):
        # write code here
        if len(tinput) == 0 or k == 0:
            return []
        if len(tinput) == k:
            return tinput
        left = 0
        right = len(tinput)-1
        l = tinput
        left = self.quick_sort(l, left, right)
        while left != k-1:
            if left < k-1:
                left = self.quick_sort(l, left+1, right)
            if left > k-1:
                left = self.quick_sort(l, 0,left -1 )
        return l[:k]
#         tinput.sort()
#         return tinput[:k]
    def quick_sort(self,l,left,right):
        low = left
        point = l[left]
        high = right
        while low < high:
            while low<high and point <= l[high]:
                high -= 1
            while low<high and point >= l[low]:
                low += 1
            self.swap(l, low,high)
        self.swap(l, left, low)
        return low 

    def swap(self,l,i,j):
        temp = l[i]
        l[i]= l[j]
        l[j] = temp
全部评论

相关推荐

owwhy:难,技术栈在嵌入式这块显得非常浅,并且简历有大问题。教育经历浓缩成两行就行了,写什么主修课程,说的不好听这块没人在意,自我评价删了,项目写详细点,最终简历缩成一页。相关技能怎么说呢,有点差了,还写成这么多行
投了多少份简历才上岸
点赞 评论 收藏
分享
哈哈哈,你是老六:百度去年裁员分评不好,赶紧弄点红包
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务