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]; 2 3 vector<TreeNode *> rec(int n, int left, int right) { 4 vector<TreeNode *> &res = dp[left][right]; 5 if (!res.empty()) return res; 6 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 } 17 18 public: 19 vector<TreeNode *> generateTrees(int n) { return rec(n, 1, n); } 20 };