Thursday, April 7, 2016

LeetCode Q216: Combination Sum III

Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Ensure that numbers within the set are sorted in ascending order.

Example 1:
Input: k = 3, n = 7
Output:
[[1,2,4]]

Example 2:
Input: k = 3, n = 9
Output:
[[1,2,6], [1,3,5], [2,3,4]]


Solution:
Using recursion and backtrack.
There are usually two ways of using recursion. Here, I call forward pass and backward build-up, which stands for how the final results are produced during recursion.

For forward pass, the recursive function does not return any results. Instead, results are gradually generated in each recursion that is passed down. We pass intermediate results as reference during recursion.
Code:



For backward buildup, the results are build up from end situation at the bottom of recursion process. In this function call, the function results a results of last/smaller problem. The solution of current iteration is then added to the results returned.
Code:

No comments:

Post a Comment