博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LC28 Generate Parentheses
阅读量:6284 次
发布时间:2019-06-22

本文共 1231 字,大约阅读时间需要 4 分钟。

想着用动态规划的方法,有点类似于n*n的网格,从(0,0)开始走到(n-1,n-1)有几种方法。当然必须满足纵坐标大于等于横坐标,还有必须记录到达每一个点所走的方法(这里指的是有多少不同的字符串)。

class Solution {public:    vector
generateParenthesis(int n) { vector
result; if(n<=0) return result; vector
> prev(n+1,vector
()); string s1="("; string s2=")"; for(int i=1;i<=n;i++) { vector
> rear(n+1,vector
()); if(prev[0].size()!=0) rear[0].push_back(prev[0][0]+s1); else if(prev[0].size()==0) rear[0].push_back(s1); for(int j=1;j
View Code

还有种用递归的简洁方法:

1 class Solution { 2 public: 3     vector
generateParenthesis(int n) { 4 vector
res; 5 addingpar(res, "", n, 0); 6 return res; 7 } 8 void addingpar(vector
&v, string str, int n, int m){ 9 if(n==0 && m==0) {10 v.push_back(str);11 return;12 }13 if(m > 0){ addingpar(v, str+")", n, m-1); }14 if(n > 0){ addingpar(v, str+"(", n-1, m+1); }15 }16 };
View Code

 

转载于:https://www.cnblogs.com/vaecn/p/5375081.html

你可能感兴趣的文章
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>