From 97682c47c55c7a3c2e106cc86bf5c1081ca38445 Mon Sep 17 00:00:00 2001 From: Scott Lindsay <81109215+SDL101@users.noreply.github.com> Date: Sat, 10 Feb 2024 18:37:43 -0800 Subject: [PATCH] Time: 68 ms (49.16%), Space: 16.6 MB (64.30%) - LeetHub --- .../0040-combination-sum-ii.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 0040-combination-sum-ii/0040-combination-sum-ii.py diff --git a/0040-combination-sum-ii/0040-combination-sum-ii.py b/0040-combination-sum-ii/0040-combination-sum-ii.py new file mode 100644 index 0000000..666c657 --- /dev/null +++ b/0040-combination-sum-ii/0040-combination-sum-ii.py @@ -0,0 +1,24 @@ +class Solution: + def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]: + candidates.sort() + + res = [] + + def backtrack(cur, pos, target): + if target == 0: + res.append(cur.copy()) + return + if target <= 0: + return + + prev = -1 + for i in range(pos, len(candidates)): + if candidates[i] == prev: + continue + cur.append(candidates[i]) + backtrack(cur, i + 1, target - candidates[i]) + cur.pop() + prev = candidates[i] + + backtrack([], 0, target) + return res \ No newline at end of file