首页 > 其他分享 >leetcode:括号生成

leetcode:括号生成

时间:2023-08-06 18:44:53浏览次数:32  
标签:right int res 生成 括号 str leetcode backtracking left

 回溯的本质是穷举,穷举所有情况,这里有剪枝,只在有效情况下继续

class Solution {
    vector<string> res;
    string str;
    void backtracking(int left,int right){
        if(left<0 || left>right) return;//出现无效情况就不继续
        if(left==0 && right==0){
            res.emplace_back(str);
            return;
        }
        if(left>0){//只在有效情况下继续
            str+='(';
            backtracking(left-1,right);
            str.pop_back();
        }
        if(right>left){
            str+=')';
            backtracking(left,right-1);
            str.pop_back();
        }
    }
public:
    vector<string> generateParenthesis(int n) {
        res.clear();
        str.clear();
        backtracking(n,n);
        return res;
    }
};

 

标签:right,int,res,生成,括号,str,leetcode,backtracking,left
From: https://www.cnblogs.com/lcstudy2021/p/17609729.html

相关文章

  • qrcode生成二维码
    jsqrcode包生成二维码安装npminstall--saveqrcode或者,全局安装以便从命令行保存qrcode图像或生成您可以在您的终端中查看的图像。npminstall-gqrcode使用importQRCodefrom"qrcode"letcode="string....";QRCode.toDataURL(code,{errorCorrect......
  • Bazel 如何生成 clangd/clang-tidy 所需的 compile_commands.json
    VSCode中如何使用clang-tidy安装clangd插件禁用ms-cpp插件(VSCode会自动提示有冲突)生成clangd所需的compile_commands.json文件如何生成compile_commands.json文件修改WORKSPACE,添加以下内容load("@bazel_tools//tools/build_defs/repo:http.bzl","http_a......
  • Leetcode第357场周赛
    https://leetcode.cn/contest/weekly-contest-357/C寻找不安全路径以所有小偷点为源点,跑多源点BFS,求出每个点到最近小偷点的曼哈顿距离,记为w[i,j]二分答案Mid,只允许走w[i,j]>=mid的点,从源店跑DFS/BFS,看是否能抵达汇点。D子序列最大优雅度反悔贪心,首先将所有项目按照利......
  • 关于参数是否要括号包起来
    一般情况下若调用一个方法,如果我们需要需要该返回值赋给某个变量,那么该方法或函数的所以参数必须用一个括号整体括起来。例如,在最后工作表添加2个工作表:Sub在最后工作表添加2个工作表()DimaAsObject'方式1:正确。利用一个变量接收返回值由于add返回的是一个对象......
  • RequestId生成工具类,兼顾可读性和随机性
    RequestId生成工具类,兼顾可读性和随机性生成的id是这样的202308060935013260E345D142718AF524202307301911464809D0978E04DB2458AD这两个样例的requestId包括了日期、时间、一串随机数字和字母。可以使用以下格式来生成requestId:日期(年月日):20230806时间(小时分钟秒):0935一......
  • 一支笔,一双手,一道力扣(Leetcode)做一宿
    (文章目录)一、分享自己相关的经历我是一名计算机专业的学生,之前在学习算法和数据结构时,对于简单题目还算能够顺利地刷过去。但是当我开始尝试刷一些medium难度的题目时,就感觉自己卡在原地了。明明看过题解,知道解题思路,但真正动手做题时,就觉得无从下手,甚至一道题目做了好几天都......
  • 【LeetCode剑指offer#06】实现pow函数、计算x的平方根
    实现pow函数实现pow(x,n),即计算x的整数n次幂函数(即,xn)。示例1:输入:x=2.00000,n=10输出:1024.00000示例2:输入:x=2.10000,n=3输出:9.26100示例3:输入:x=2.00000,n=-2输出:0.25000解释:2-2=1/22=1/4=0.25代码classSolution{public:do......
  • 计算图的生成
    主流机器学习框架都支持动态图和静态图。动态图是即时编译的,也就是有一个op和输入之后立即发kernel执行计算得到结果并返回。静态图是获取到整个程序结构之后构建了计算序列之后再进行计算的,比如有op1、op2….opn,还有输入input1、input2…inputm,然后执行整个拓扑序列的计......
  • LeetCode从算法到算命—每日一题(0805)
    21. 合并两个有序链表题目信息将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]......
  • 最小生成树
    1.prim每次循环都访问一个点,并将此点所有边找到其最小的边权,如果最小边权对应的点没有被访问过,则加入队列。这相当于向生成树中添加了n-1条最小边,最后检查所有点的连通性,联通的话得到的就是最小生成树,属于贪心算法。暴力贪心的话复杂度为o(n²),这边采用堆优化的方法,时间复杂度o(......