Combination Sum – Solution & Complexity
1. Recognize the Pattern
The key pattern is: Backtracking branches between reusing and skipping each candidate. Identify the state and invariant before coding.
2. Build the Algorithm
Advance one state transition at a time. Mark or update state before exploring dependent work.
3. Check Edge Cases
Test empty or minimal input, skewed shapes, duplicates where allowed, and impossible outcomes.
4. Solution and Complexity
Time: O(2^(t/m)). Space: O(t/m).