第一次收到邀请回答。。不过今天才看到
代码我就用php写了,带注释,
这个题目一看排列组合,我能想到的就是 递归搜索了,以下仅为一种参考解法,并非最优
对这样的数组取n个元素进行排列组合[[3.5],[4.6,23],[5.25,13]], 我把这个问题拆分成2步,一是对这个二维数组 (简称 a)任取 n 个子一维数组组成一个新的二维数组 (简称 b), 然后对 b 进行任取 n 个元素的操作,这时就是对b 中每一个子一维数组中任取一个元素,组在一起即为题解。
例:
a =[[3.5],[4.6,23],[5.25,13]]
n = 2
此时 b 有3个, 分别为
b1 = [[3.5], [4.6,23]]
b2 = [[3.5], [5.25, 13]]
b3 = [[4.6, 23], [5.25, 13]]
再对每个 b 中每一个子一维数组中任取一个元素,组在一起即为题解
对 b1
【3.5,4.6,】,【3.5,23】,
对 b2
【3.5,5.25】,【3.5,13】,
对 b3
【4.6,5.25】,【4.6,13】,【23,5.25】,【23,13】
一下是参考代码(2 步 都是用 递归做的) : |