只想重新排列数组中的数据,以便类似的项目不在每个项目旁边。数据不应该从数组中删除,如果它不能重新排列,它可以放在数组的末尾。但保持原来的秩序是必要的。如何重新排列数组中的数据,以便两个相似的项目彼此不相邻?
例
1 1 2 => 1 2 1
1 1 1 2 3 => 1 2 1 3 1
1 1 2 1 3 3 5 1 => 1 2 1 3 1 3 5 1
1 1 1 1 1 1 2 => 1 2 1 1 1 1 1
8 2 1 3 7 2 5 => rearrange not needed
8 2 2 2 7 2 5 2 => 8 2 7 2 5 2 2 // keep the original order
编辑: 新增为例,说明保持原有的以在需要
你想重新排列它们,但保持顺序....? – 2010-11-11 17:19:18
我只是说如果可能的话 – 2010-11-11 17:21:13
@Mark - 这两者是互斥的......要么保留订单或改变它......你能澄清你的意思吗? – 2010-11-11 17:21:50