将数组拆分为长度为2

时间:2017-07-28 03:59:52

标签: arrays combinations

我有一个数组,比如说

ar = [1,2,3,4,5]

我需要找到一个数组(或矩阵)列表,其中包含将此数组拆分为详尽对的所有可能方法。

例如。

[
 [[1,2],[3,4],[5]],
 [[1,2],[3,5],[4]],
 [[1,2],[4,5],[3]],
 [[1,3],[2,4],[5]]
 ...
 [[1,5],[3,4],[2]]
                  ]
  

请尝试使用伪代码,或者不要使用特定于语言的函数

1 个答案:

答案 0 :(得分:0)

我会给出直觉来解决这类问题。首先,您可以看到此问题可以递归解决。那是为什么?

首先从数组中取出任意两个元素,

然后你为数组的其余元素解决了同样的问题。

如果数组的长度为2或1,则停止。

以下是粗略的伪代码。

solve(arr){
    if len(arr)==1 or 2{
        return arr
    }

    take two elements
    (say [1, 5])
    remainder = [2, 3, 4]
    solve(remainder)
}