zoukankan      html  css  js  c++  java
  • [LeetCode] 22. 括号生成

    参考DFS和BFS

    方法一:DFS

    class Solution {
        public List<String> generateParenthesis(int n) {
            List<String> res = new ArrayList<>();
            // 特判
            if (n == 0) {
                return res;
            }
    
            dfs("", 0, 0, n, res);
            return res;
        }
    
        public void dfs(String curStr,int left,int right,int n,List<String> res){
            if(left==n&&right==n){
                res.add(curStr);
                return;
            }
            if(left<right){
                return;
            }
            if(left<n){
                dfs(curStr+"(",left+1,right,n,res);
            }
            if(right<n){
                dfs(curStr+")",left,right+1,n,res);
            }
        }
    }

    方法二:BFS

    方法三:动态规划:

    无后效性可以改为动态规划

    class Solution {
        public List<String> generateParenthesis(int n) {
            if(n==0){
                return new ArrayList<>();
            }
    
            List<List<String>> dp=new ArrayList<>(n);
            List<String> dp0=new ArrayList<>();
            dp0.add("");
            dp.add(dp0);
    
            for(int i=1;i<=n;i++){
                List<String> cur=new ArrayList<>();
                for(int j=0;j<i;j++){
                    List<String> str1=dp.get(j);
                    List<String> str2=dp.get(i-1-j);
                    for(String s1:str1){
                        for(String s2:str2){
                            cur.add("("+s1+")"+s2);
                        }
                    }
                }
                dp.add(cur);
            }
            return dp.get(n);
        }
    }

  • 相关阅读:
    自相关函数 互相关函数 平稳随机过程
    MC323发短信程序+MSP430F149
    labview notes
    DSSS FHSS
    dBm与功率(w)换算关系!
    int 正负相乘
    51单片机 1602液晶显示
    51单片机 AD转换
    51单片机 蜂鸣器
    51单片机 串口通信
  • 原文地址:https://www.cnblogs.com/doyi111/p/12666979.html
Copyright © 2011-2022 走看看