代码随想录算法训练营第二十四天 | 回溯算法

昨天我们结束了二叉树的刷题,从今天起开始了回溯算法的刷题,今天是一道基础的回溯题目。

77.组合

力扣题目链接

代码随想录算法训练营第二十四天 | 回溯算法_第1张图片

思路

使用回溯算法。

代码实现

class Solution {
private:
    vector> res;
    vector path;
    void backtracking(int n, int k, int cur)
    {
        if(path.size()==k)
        {
            res.push_back(path);
            return ;
        }
        for(int i = cur; i <= n-(k-path.size())+1 ; i ++)
        {
            path.push_back(i);
            backtracking(n , k, i+1);
            path.pop_back();
        }
    }
public:
    vector> combine(int n, int k) {
        backtracking(n , k, 1);
        return res;
    }
};

收获

回溯backtracking的时候要用i+1,一开始错误的想成了cur+1,其实是不对的。

你可能感兴趣的:(算法,数据结构)