动态规划来做。
class Solution {
public:
vector<string> generateParenthesis(int n) {
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 tmp = "("+p+")"+q;
dp[i].push_back(tmp);
}
}
}
}
return dp[n];
}
};
本文介绍如何使用动态规划解决一个常见的编程问题,即生成所有可能的n对括号组合。通过三层循环和递推思想,作者展示了如何构建一个解决方案,并返回了完整的括号序列列表。
1231

被折叠的 条评论
为什么被折叠?



