伴你如风、护你如影|

xzh-yyds

园龄:3年9个月粉丝:0关注:2

leetcode22-括号生成

括号生成

  • 回溯

回溯过程中记录cnt,cnt是左括号减去右括号的数量。

  1. 如果cnt等于0,那么只能用左括号
  2. 如果cnt等于n-k,那么说明只有剩余括号位全是右括号才可以将所有左括号匹配,只能用右括号
  3. 除此之外,左右括号都可以
class Solution {
    List<String> list = new ArrayList<>();
    char arr[];
    public List<String> generateParenthesis(int n) {
        arr = new char[2*n];
        backtracking(0, n*2, 0);
        return list;
    }
    public void backtracking(int k, int n, int cnt){
        if(k == n){
            list.add(new String(arr));
            return;
        }
        if(cnt == 0){
            arr[k] = '(';
            backtracking(k+1, n, cnt+1);
        }else if(cnt == n-k){
            arr[k] = ')';
            backtracking(k+1, n, cnt-1);
        }else{
            arr[k] = '(';
            backtracking(k+1, n, cnt+1);
            arr[k] = ')';
            backtracking(k+1, n, cnt-1);
        }
    }
}

本文作者:xzh-yyds

本文链接:https://www.cnblogs.com/xzh-yyds/p/16596840.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   xzh-yyds  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开