给一个list, 如何把里面的字符分配到尽量少的子list里,并且每个子list没有重复元素。 
比如 ['a','b','c','a','a','b'], 可以分成['a', 'b', 'c'], ['a', 'b'], ['a'] 
['a', 'a', 'a', 'b', 'b', 'b'],可以分成['a', 'b'], ['a', 'b'], ['a', 'b']

先给出了O(n^2)的解法,后来发现可以先数一遍字符个数,找到出现最多的,比如a出现3次,就建3个子list,
然后把每种字符round robin那样放进各个list就行了, 这样是O(n) 

链接: https://instant.1point3acres.com/thread/267448
来源: 一亩三分地

//想到了这个:Rearrange String k Distance Apart

results matching ""

    No results matching ""