题解 | #最小的k个数#

最小的K个数

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

思路:快排,没啥好说的

class Solution:
    def GetLeastNumbers_Solution(self , input: List[int], k: int) -> List[int]:
        # write code here
        if len(input) == 0:
            return []
        
        self.quickSort(input, 0, len(input)-1)
        return input[:k]
                
    def quickSort(self, a, left, right):
        
        if left >= right:
            return
        
        l, r = left, right
        flag = a[l]
        while l != r:
            while l < r and a[r] >= flag:
                r -= 1
            a[l] = a[r]
            
            while l < r and a[l] <= flag:
                l += 1
            a[r] = a[l]
        a[l] = flag
        
        self.quickSort(a, left, l)
        self.quickSort(a, l+1, right)
全部评论

相关推荐

2024-12-29 15:37
已编辑
西华大学 图像识别
程序员牛肉:去不了,大厂算法卡学历吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务