在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

n个数组排列组合

对这样的数组取n个元素进行排列组合[[3.5],[4.6,23],[5.25,13]]
想要的结果:
1、取两个排列的时候
【3.5,4.6,】,【3.5,23】,【3.5,5.25】,【3.5,13】,【4.6,5.25】,【4.6,13】,【23,5.25】,【23,13】
2、取三个排列的时候
【3.5,4.6,5.25】,【3.5,4.6,13】,【3.5,23,5.25】,【3.5,23,13】

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

第一次收到邀请回答。。不过今天才看到
代码我就用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 步 都是用 递归做的) :

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册