0
点赞
收藏
分享

微信扫一扫

LeetCode——回溯

_铁马冰河_ 2022-03-17 阅读 47

组合三部曲

  • 确定函数参数和递归终止条件
  • for循环遍历树的深度和宽度
  • 回溯记得pop_back.

1. 组合

  • 为了简单将两个vector设为全局变量
  • startindex要传入,不然递归时无法往下更新
  • 递归过程中伴随回溯,path.pop_back就是在回溯过程中使用的,
class Solution {
public:
vector<vector<int>>res;
vector<int>path;
    void backtracking(int n,int k,int startindex){  
        if(path.size()==k){
            res.push_back(path);
            return;
        }
        for(int i=startindex;i<=n;i++){
            path.push_back(i);
            backtracking(n,k,i+1);
            path.pop_back();
        }
    }
    vector<vector<int>> combine(int n, int k) {
        backtracking(n,k,1);
        return res;
    }
};
举报

相关推荐

0 条评论