我有一个数组,比如说
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]]
]
请尝试使用伪代码,或者不要使用特定于语言的函数
答案 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)
}