zoukankan      html  css  js  c++  java
  • Leetcode 22:括号生成

    //这里采用dfs算法
    class Solution {
    public:
        vector<string> generateParenthesis(int n) {
            vector<string> res;
            func(res, "", 0, 0, n);
            return res;
        }
        void func(vector<string> &res, string str, int l, int r, int n){
            if(l > n || r > n || r > l) return ;
            if(l == n && r == n) {res.push_back(str); return;}
            func(res, str + '(', l+1, r, n);
            func(res, str + ')', l, r+1, n);
            return;
        }
    };
    
    //利用动态规划相关知识 dp[i]中的str等于dp[j]与dp[i - j - 1]中str的组合(A)B型。其中j < i
    class Solution {
    public:
    	vector<string> generateParenthesis(int n) {
    		if (n == 0) return {};
    		if (n == 1) return { "()" };
    		vector<vector<string>> dp(n+1);
    		dp[0] = { "" };
    		dp[1] = { "()" };
    		for (int i = 2; i <= n; i++) {
    			for (int j = 0; j <i; j++) {
    				for (string p : dp[j])
    					for (string q : dp[i - j - 1]) {
    						string str = "(" + p + ")" + q;
    						dp[i].push_back(str);
    					}
    			}
    		}
    		return dp[n];
    	}
    };
    
    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    Oracle导出存储过程
    正在执行的SQL和之前执行的SQL
    查看TEMP使用情况
    Oracle TEMP表空间切换
    VARCHAR2字段关联
    PL/SQL 异常处理
    pl/sql 关于变量定义的问题
    FILTER优化
    PL/SQL拼接和使用绑定变量
    循环处理数据提交
  • 原文地址:https://www.cnblogs.com/lightac/p/12665191.html
Copyright © 2011-2022 走看看