leetcode-22-Generate Parentheses
2017-03-10 23:10
495 查看
问题
题目:[Generate Parentheses]思路
卡特兰数的思路。任意时刻左括号的数量要多于右括号。
我的思路也很简单,那就是每一位挨个试探就好了。
搜索的思路。
至于参数传递,我没有选择引用。而是值传递,这一块我不是很熟。
传递引用后面要将变化改回来。
代码
class Solution { public: vector<string> generateParenthesis(int n) { std::vector<std::string> ret; std::string s(2*n, ' '); dfs(s, 0, n, 0, 0, ret); return ret; } private: void dfs(std::string s, int depth, int n, int cnt_left, int cnt_right, std::vector<std::string>& ret){ if(depth == 2*n) ret.push_back(s); else{ if( cnt_left < n && cnt_left >= cnt_right ){ s[depth] = '('; dfs( s, depth + 1, n, cnt_left + 1, cnt_right, ret ); } if( cnt_right < n && cnt_right < cnt_left ){ s[depth] = ')'; dfs( s, depth + 1, n, cnt_left, cnt_right + 1, ret ); } } } };
相关文章推荐
- leetcode 22 Generate Parentheses
- LeetCode 22 Generate Parentheses
- LeetCode 22 Generate Parentheses
- [Leetcode 49] 22 Generate Parentheses
- LeetCode 22 Generate Parentheses 卡特兰数问题,有待进一步学习
- Java [leetcode 22]Generate Parentheses
- LeetCode 22-Generate Parentheses
- [Leetcode-22]Generate Parentheses 生成圆括号
- Leetcode 22 Generate Parentheses
- leetcode-22 Generate Parentheses
- Leetcode 22 Generate Parentheses 搜索与DP的纠结
- 【Leetcode-Medium-22】Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode 22 Generate Parentheses(找到所有匹配的括号组合)
- Leetcode-22:Generate Parentheses
- leetcode-22-Generate Parentheses
- LeetCode 22 Generate Parentheses (DFS 构造)
- [Leetcode] 22- Generate Parentheses
- [LeetCode]: 22 : Generate Parentheses
- LeetCode 22 Generate Parentheses