题解 | #最小的K个数#

最小的K个数

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

本来想练习 merge sort 做了个这

# -*- coding:utf-8 -*-
class Solution:
    def GetLeastNumbers_Solution(self, tinput, k):
        # write code here
        tinputSorted = self.MergeSort(tinput)
        return tinputSorted[:k]
    def MergeSort(self, tinput):
        #merge sort
        iListLen = len(tinput)
        if iListLen <= 1:
            return tinput
        iMiddle = int(iListLen/2)
        lLeftList = self.MergeSort(tinput[:iMiddle])
        lRightList = self.MergeSort(tinput[iMiddle:])
        C = self.Merge(lLeftList,lRightList)
        return C

    def Merge(self,lLeft,lRight):
        # Merge
        C = []
        i = 0
        j = 0
        lLeft.append(None)
        lRight.append(None)
        while (lLeft[i] is not None) and (lRight[j] is not None):
            if lLeft[i] <= lRight[j]:
                C.append(lLeft[i])
                i += 1
            else:
                C.append(lRight[j])
                j += 1
        if lLeft[i] is None:
            for jj in lRight[j:-1]: C.append(jj)
        else:
            for ii in lLeft[i:-1]: C.append(ii)
        return C
            
全部评论

相关推荐

01-10 21:46
门头沟学院 HTML5
就用这个吧:还敢去多益,不怕离职的时候收你空气使用费
点赞 评论 收藏
分享
01-15 17:34
保定学院 Java
数学转码崽:学历没优势就得卷项目和实习啊,但是我看了一下你这个项目,什么雪花算法,搜索引擎,Docker,minio这些都属于通用的东西啊,根本不算亮点,没有任何业务相关性。 还有第二个看到统一鉴权,分片上传估计面试官都不想看了。连我一个偶尔刷刷牛客简历的都看多了,面试官估计早都看吐了。。。 秋招结束了,就尽量找找中小厂吧,毕竟你现在转行已经没时间了,高低有一段实习经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务