从1-n中选择m个数的组合个数

给定1,2,3,。。。,n(n>=1), 从n个数中选择m(m<=n)个数,求所有组合个数

递归实现:

var data = [1,2,3,4,5];
var output = [];
function outputAll(start, count){
    console.log(start + ","  + count); //跟踪调用过程
    if(start < 0 || start > data.length || data.length - start < count || count < 0){  //参数校验
        return;
    }
    if(count == 0){  //递归终止
        console.log(output);
        return;
    }
    var i = start;
    for(i = start; i < data.length && data.length - i >= count; ++i){  //核心递归 "根 左 右"的访问深度优先 多叉树递归
        output.push(data[i]);
        outputAll(i + 1, count - 1);
        output.pop();
    }
}
outputAll(1,2);
outputAll(0, 5);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值