
g0001_0100.s0022_generate_parentheses.Solution.dart Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-all Show documentation
Show all versions of leetcode-in-all Show documentation
104 LeetCode algorithm problem solutions
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #String #Dynamic_Programming
// #Backtracking #Algorithm_II_Day_11_Recursion_Backtracking #Udemy_Backtracking/Recursion
// #Big_O_Time_O(2^n)_Space_O(n) #2024_10_01_Time_312_ms_(79.37%)_Space_150.6_MB_(25.40%)
class Solution {
List generateParenthesis(int n) {
return parenthesis(n, n);
}
List parenthesis(int left, int right) {
if (left == 0 && right == 0) {
return [""];
}
List return_ls = [];
if (left != 0) {
List l1 = parenthesis(left - 1, right);
for (int i = 0; i < l1.length; ++i) {
l1[i] = '(' + l1[i];
return_ls.add(l1[i]);
}
}
if (right != 0 && left < right) {
List r1 = parenthesis(left, right - 1);
for (int i = 0; i < r1.length; ++i) {
r1[i] = ')' + r1[i];
return_ls.add(r1[i]);
}
}
return return_ls;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy