Given a collection of candidate numbers (candidates) and a target number (target), find all unique combinations in candidates where the candidate numbers sum to target.
Each number in candidates may only be used once in the combination. The solution set must not contain duplicate combinations.
Input: candidates = [10, 1, 2, 7, 6, 1, 5], target = 8 Output: [[1, 1, 6], [1, 2, 5], [1, 7], [2, 6]] Explanation: Four unique combinations sum to 8; note 1 appears twice in the input so [1, 1, 6] is valid.
Input: candidates = [2, 5, 2, 1, 2], target = 5 Output: [[1, 2, 2], [5]] Explanation: Two unique combinations sum to 5; each number is used at most as many times as it appears.
1 <= candidates.length <= 1001 <= candidates[i] <= 501 <= target <= 30candidates = [10, 1, 2, 7, 6, 1, 5], target = 8