我需要重新整理从API接收的对象数组。该数组将重复出现对象。
有效输入:
无效的输入:
洗牌后:
有效输出:
无效的输出:
我开始使用Fisher-Yates进行初始混洗,然后验证解决方案是否有效。一旦设置了少量设置,这种蛮力方法就可以使用,但是随着输入的增加,它变得毫无用处。有没有一种有效的方法来生成随机排列而又不会使重复项彼此相邻?
Efficient algorithm for ordering different types of objects深入了解了如何使相同种类的对象彼此保持距离,不幸的是,如果尝试再次随机播放,将遇到相同的解决方案/模式。
[https://stackoverflow.com/a/32366585/4271233生成满足”没有彼此相邻的两个重复项”的所有可能排列,但是可悲的是,我需要生成所有它们,然后随机选择一个
我需要重新整理从API接收的对象数组。该数组将重复出现对象。有效输入:[“ a”,“ a”,“ a”,“ a”,“ b”,“ b”,“ b”,“ b”,“ c”,“ c”,“ c”,“ c “] [” a“,” ...
此解决方案不是最佳解决方案,但您可以从此开始