假设我有3个相同的数组,每个数组都是这样的:[1,2,3,4]
。
通过从每个数组中选择一个值,我想耗尽所有组合,因此在本例中,所需的结果将是:
[1,2,3], [1,2,4], [1,3,4],[2,3,4]
订单无关紧要。我目前正在迭代所有可能性,而且这太慢了。
我想首先做一个检查以确保迭代器大于它左边的那个,但是在1,4,...
的情况下会因为第3个数组没有大于4的任何东西而失败。所以另外,我需要检查以确保每列的最大值不大于column length - (# of repeating columns - column position
。例如第2列不能超过3.但我想我要走下兔子洞了。
有哪些聪明的方法可以在尽可能少的迭代中获得所需的结果?修改阵列也是公平的游戏。