LeetCode 77. Combinations DFS应用

求1-n的 k位数字的全排列

用dfs即可

注意剪枝, 当剩下的数字数量 小于 所需数量时,则return。


class Solution {
public:
    vector> ans;
    vector nowv;
    void dfs(int s,int level,int n){
        int i;
        if(n - s < level)
            return ;
        if(level == 0){
            ans.push_back(nowv);
            return ;
        }
        for(i = s + 1;i <= n;i++){
            nowv.push_back(i);
            dfs(i, level - 1, n);
            nowv.pop_back();
        }
    }
    vector> combine(int n, int k) {
        dfs(0, k, n);
        return ans;
    }
};

你可能感兴趣的:(leetcode)