【发布时间】:2016-04-12 14:03:15
【问题描述】:
我无法解释我在寻找什么,所以我将提供一个示例,假设我有这个数组:
[
[1, 2],
[1, 3],
[1, 4],
[2, 3],
[2, 4],
[3, 4]
]
我希望它循环通过第一列,而不是按第一列排序,所以它可以代替1, 1, 1, 2, 2, 3:1, 2, 3, 1, 2, 1
导致:
[
[1, 2],
[2, 3],
[3, 4],
[1, 3],
[2, 4],
[1, 4]
]
如果它可以循环遍历两列以尽可能避免连续出现两个数字,则更好的解决方案是将原始数组排序为:
[
[1, 2],
[3, 4],
[1, 3],
[2, 4],
[1, 4],
[2, 3]
]
导致每个内部数组的重复数字之间的最大间距(两列都被考虑在内)。
我希望我提供了足够的信息,我将不胜感激任何建议,到目前为止我还很无知,搜索没有给我任何帮助。
【问题讨论】:
-
我不明白在这两列中循环,因此无法为此编写解决方案..
-
相邻项目之间的距离是否重要,或者只是它们不同更好?
-
骑自行车不能确保或最大化交替。例如,
[1, 1, 1, 1, 2, 3, 4]将导致[1, 2, 3, 4, 1, 1, 1](末尾三个 1),尽管您可以不重复排列数字:[1, 2, 1, 3, 1, 4, 1]
标签: ruby-on-rails arrays ruby sorting multidimensional-array