從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);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章