Leetcode 39 - Combination Sum

題目

Problem#

給你一組數字 candidates 和一個數字 target ,問你能用candidates中的元素組成不重複的組合,且相加要等於 T。相同的數字可以出現無限次

  • 1 <= candidates.size() <= 30
  • 1 <= candidates[i] <= 200
  • 1 <= T <= 500

想法#

用 backtracking 去試數字的組合,終止點在總和等於 target

  • 時間複雜度: $\mathcal{O}(N^{\frac{T}{M}})$
    • N = candidates.size(), T = target, M = minimum value of candidates
  • 空間複雜度: $\mathcal{O}(\frac{T}{M})$

AC Code#

賞析#

TODO: DP

https://leetcode.com/problems/combination-sum/discuss/937255/Python-3-or-DFSBacktracking-and-Two-DP-methods-or-Explanations