Medium
Given distinct positive integers candidates and a target, return all unique combinations that sum to target. A candidate may be reused unlimited times.
Input: candidates = [2,3,6,7], target = 7 Output: [[2,2,3],[7]]
Input: candidates = [2,3,5], target = 8 Output: [[2,2,2,2],[2,3,3],[3,5]]