leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0095.cpp (615B)
0 class Solution {
1 vector<TreeNode *> dp[10][10];
3 vector<TreeNode *> rec(int n, int left, int right) {
4 vector<TreeNode *> &res = dp[left][right];
5 if (!res.empty()) return res;
7 for (int i = left; i <= right; i++) {
8 for (const auto &l : rec(n, left, i - 1)) {
9 for (const auto &r : rec(n, i + 1, right)) {
10 res.push_back(new TreeNode(i, l, r));
11 }
12 }
13 }
14 if (res.empty()) return {nullptr};
15 return res;
16 }
18 public:
19 vector<TreeNode *> generateTrees(int n) { return rec(n, 1, n); }
20 };