044:括号生成

LeetCode 22 https://leetcode.cn/problems/generate-parentheses/description/ 难度:中等 选或不选。选就是左括号,不选就是右括号。左右括号的数量需要有约束,open 是左括号的数量。open < n 限制左括号至多填 n 个,i - open < open 限制右括号至多填 open 个。 时间复杂度:分析回溯问题的时间复杂度,有一个通用公式:路径长度 × 搜索树的叶子数。对于本题,它等于 O(n⋅C(2n,n))。但由于左右括号的约束,实际上没有这么多叶子,根据 Catalan 数,实际的时间复杂度为 O(C(2n,n))。 空间复杂度:O(n)。返回值的空间不计入。 ...

七月 1, 2025 · Cassius

033:复原IP地址

LeetCode 93 https://leetcode.cn/problems/restore-ip-addresses/description/ 难度:中等 子集型回溯题目,本题使用“枚举选哪个”方法。 dfs(i, start) i 表示第几段,start 表示这一段从第几个数字开始。当选够 4 段且所有数字都被使用时添加答案。 如果 s[start] 为 0,这一段只能是 0,dfs(i + 1, start + 1)。 如果不是 0,这一段的数据范围需要在 [1, 255]之间,如果超过 255 就 break。 时间复杂度:\(O(3^N \times m)\),m 为 s 的长度。 空间复杂度:O(N) ...

六月 30, 2025 · Cassius

015:全排列

LeetCode 46 https://leetcode.cn/problems/permutations/description/ 难度:中等 这是一道回溯法的题目,本题适用于“枚举选哪个”方法。 时间复杂度:O(n⋅n!),其中 n 为 nums 的长度。搜索树中的节点个数低于 3⋅n!。实际上,精确值为 ⌊e⋅n!⌋,其中 e=2.718⋯ 为自然常数。有 O(n!) 个叶节点,每个叶节点花费 O(n) 的时间复制 path 数组,因此时间复杂度为 O(n⋅n!)。 空间复杂度:O(n)。返回值的空间不计入。 ...

六月 29, 2025 · Cassius