【发布时间】:2012-02-01 08:43:46
【问题描述】:
所以,我有一个组列表
[['a', 'b'], ['c', 'd', 'e'], ['f']]
我需要重新整理这个列表的扁平化版本
[a, b, c, d, e, f]
这样同一组的元素将在彼此相距一定距离处结束。比如
[a, c, b, d, f, e] 而不是[a, c, b, d, e, f],因为d 和e 在同一个组中。
我不在乎距离是否只是一个元素或多个元素,但任何元素必须不能靠近其组中的另一个元素。有什么算法吗?
算法还需要判断这是否无法完成。
【问题讨论】:
-
当一个组的成员数量超过所有其他组的总和时会发生什么?
-
如果不能完成,你期望会发生什么,例如:
[[a],[b,c,d,e,f]] -
这是秘密圣诞老人洗牌名单。团体是对互相赠送礼物不感兴趣的人。
-
@moguzalp 不,这是 vkontakte 的一个小应用程序的一部分。