首页 > 其他 > 详细

[leetcode]1054. Distant Barcodes

时间:2019-05-26 23:49:15      阅读:178      评论:0      收藏:0      [点我收藏+]

出差没有状态,啃不动前面几道硬骨头,倒着做。

 

Ver.1:

时间复杂度很美,但是无法处理 1 2 2 2 5, 1 1 1 2 3这类输入:

#1 2 2 2 5
#2 1 2 5 2

#2 1 1 1 3
#1 1 1 2 3
#1 2 1 3 1

class Solution:
    def rearrangeBarcodes(self, barcodes: List[int]) -> List[int]:
        lengthS =len(barcodes)
        #0,1
        if lengthS == 0 or lengthS == 1:
            return barcodes
        #regular
        barcodes = sorted(barcodes)
        ret =[]
        ret.append(barcodes[lengthS // 2])
        index = 0
        while(len(ret) < lengthS):
            #
            if len(ret) < lengthS:
                if ret[-1] != barcodes[index]:
                    ret.append(barcodes[index])
            else:
                return ret
            #
            if len(ret) < lengthS:
                if ret[-1] != barcodes[- (index+1)]:
                    ret.append(barcodes[- (index+1)])
            else:
                return ret
            #check
            if len(ret)%2 == 1:
                index = index + 1
        return ret

 

 

Ver.2:

 

[leetcode]1054. Distant Barcodes

原文:https://www.cnblogs.com/alfredsun/p/10928294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!