现在要实现一个,类似于排列组合的方法,给定一个数组(数组内全部是数字),变化数组内每个值的,形成不同的组合。就像下面这样。
例如:[2,2,3] 排列出 223 = 12个不同组合
[
[1,1,1],[1,1,2],[1,1,3],
[1,2,1],[1,2,2],[1,2,3],
[2,1,1],[2,1,2],[2,1,3],
[2,2,1],[2,2,2],[2,2,3]
]
注:[2,2,3] 是不定的数字与数据长度,听起来有点可怕(这要遍历多少次啊),可实际需求就是这样
补充: 如果是固定数组长度,@superme已经给出答案,现在的问题是:未知数组长度与数字大小
,目前我能想到的方式是,使用 eval 来处理未知数,加上superme的方法遍历,这样比递归稍简单一些。请问大家还有什么好的方法吗?
如果大家有好的办法,或实现方案,由于本人理解能力偏低,大神们请尽量上一个实现函数,在下感激不尽。
应该可以nlog(n) 时间复杂度,但是不会
最后一种效率会高一点