我想弄清楚如何编写一个函数,它需要两个整数,n和k,并且找到所有严格递减的从0到n的整数长度k的序列。查找长度为k的所有递减序列的列表?
例如,allDecreasing(5,3)返回
[[4,3,2],[4,3,1],[4,3,0],[4,2, 1],[4,2,0],[4,1,0],[3,2,1],[3,2,0],[3,1,0],[2,1,0] ]
到目前为止,我只有:
function all-decreasing(n, k) {
if (n > k-1) {
all-decreasing(n-1, k);
}
}
它的并不多,因为我不太知道如何处理迭代的一部分。置换和子集算法一直困扰着我。如果有人可以给我一个关于如何开始的想法,那将不胜感激!谢谢。
从范围中选择n个整数,排序。要选择每个这样的集合一次,有许多实现,请参见[这里](http://stackoverflow.com/questions/4504974/how-to-iteratively-generate-k-elements-subsets-from-a-set-例如java中的size-n-in-size)。 – 2014-11-05 11:02:20