216. 组合总和 III

✅做题思路or感想

经典回溯

startIndex来控制元素的范围,避免重复

class Solution {
public:
    vector<int>vec;
    vector<vector<int>>result;
    void dfs(int k, int n, int startIndex) {
        //递归中止条件
        if (k == 0 && n == 0) {
            result.push_back(vec);
            return;
        }
        //处理数据
        for (int i = startIndex; i <= 9; i++) {
            vec.push_back(i);
            dfs(k - 1, n - i, i + 1);
            vec.pop_back();//回溯
        }
    }
    vector<vector<int>> combinationSum3(int k, int n) {
        dfs(k, n, 1);
        return result;
    }
};
posted @ 2022-04-01 11:18  北原春希  阅读(23)  评论(0)    收藏  举报