这是问题
我有一个数组:
a = [1, 2, 3, 4]
并希望得到:
b = [[1, 2, 3], [1, 3, 4], [1, 2, 4], [2, 3, 4]]
最好的方法是什么?谢谢!
答案 0 :(得分:3)
您正在寻找一组4个中所有独特的3个元素集。
使用Array#组合方法:
a = [1, 2, 3, 4]
b = a.combination(3).to_a
输出:
=> [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]
更多信息:
答案 1 :(得分:0)
这是我的第一个实现。 (但我觉得性能很糟糕)
array = [1,2,3,4]
b = []
array.each{|e| c = array.clone; c.delete(e); b << c}
# b.sort!