22. 括号生成(深搜+回溯)

Posted baboon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22. 括号生成(深搜+回溯)相关的知识,希望对你有一定的参考价值。

题目描述

leetcode - 22:https://leetcode-cn.com/problems/container-with-most-water/

技术图片

解题关键

  • 深搜
  • 回溯

碎碎念

感觉自己一直对dfs这东西有点迷,不太会写,这次主要参考了大佬的答案。希望自己多写写有一天能灵光一现彻底搞懂了这玩意儿吧。嗨。

代码

void dfs(vector<string>& ans,string tmp,int n, int left, int right){
    if( right>left || left>n || right>n ) return;
    if(left == right && left == n) ans.push_back(tmp);
    dfs(ans,tmp+‘(‘,n,left+1,right);
    dfs(ans,tmp+‘)‘,n,left,right+1);
}
vector<string> generateParenthesis(int n) {
    vector<string> ans;
    int left = 0;
    int right = 0;
    dfs(ans,"",n,left,right);
    return ans;
}

以上是关于22. 括号生成(深搜+回溯)的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode22. 括号生成(简单回溯)

22. 括号生成(回溯+剪枝)

22. 括号生成(回溯+剪枝)

22. 括号生成(回溯+剪枝)

[LeetCode] 22. 括号生成(回溯/DP)

22. 括号生成-全排列-回溯