【发布时间】:2014-06-19 06:51:32
【问题描述】:
var example = new[]{1, 1, 1, 0, 1, 1}
我想生成一个由所有数组组成的数组,该数组在该数组的位置组合中具有三个 1,在所有其他位置具有 0。
在本例中,这些将是:
1 1 1 0 0 0
1 1 0 0 1 0
1 1 0 0 0 1
1 0 1 0 1 0
1 0 1 0 0 1
1 0 0 0 1 1
0 1 1 0 1 0
0 1 1 0 0 1
0 1 0 0 1 1
0 0 1 0 1 1
我写的代码变得非常冗长和混乱,显然有更好的方法。
我尝试使用位于原始数组位置上方的“计数器”,并像这样移动:
1 1 1 0 1 1
c c c
c c c
c c c
c c c
等等……
【问题讨论】:
-
您希望有人为您编写它还是您有具体问题?
-
我猜应该有一种非常基本的递归方法。数组中通常只有 6 个元素吗?
-
通常数组中的元素会比较多,而且数组会很稀疏,多为0,少数为1。