TikTok OA Interview Question: Combination Sum

20 Views
No Comments

Given an array of distinct integers candidates and a target integer target, return a list of all unique combinations of candidates where the chosen numbers sum to target. You may return the combinations in any order.

The same number may be chosen from candidates an unlimited number of times. Two combinations are unique if the frequency of at least one of the chosen numbers is different.

Example 1:

Input: candidates = [2,3,6,7], target = 7
Output: [[2,2,3],[7]]
Explanation: 2 and 3 are candidates, and 2 + 2 + 3 = 7. Note that 2 can be used multiple times. 7 is a candidate, and 7 = 7. These are the only two combinations.

This is a classic backtracking problem. We need to generate all unique combinations that sum to the target, with each candidate allowed to be used multiple times. A depth-first search is typically used: sort the candidates, explore choices from the current index onward, keep the same index when reusing a number, and stop early when the running sum exceeds the target. This approach naturally avoids duplicate combinations and fits the example output.

END
 0