出差没有状态,啃不动前面几道硬骨头,倒着做。
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