Given an integer array num_list and an integer sum_target, return all unique combinations of elements from num_list that sum to sum_target. Each element in num_list can be used at most once in each combination. The result must not contain duplicate combinations. Combinations should be returned as lists of integers, and the order of combinations and elements within combinations does not matter.
Example 1
Input: num_list = [3, 4, 7, 2, 2, 6], sum_target = 9
Output: [[2, 2, 5], [3, 6], [2, 7], [4, 5]]
Explanation: Possible unique combinations that sum to 9.
Example 2
Input: num_list = [1, 1, 1, 2], sum_target = 3
Output: [[1, 2], [1, 1, 1]]
Explanation: Unique combinations using each element at most once.
Constraints
Case 1
Input: num_list = [2, 3, 5, 6, 7], sum_target = 7
Expected: [[2, 5], [7]]
Case 2
Input: num_list = [1, 2, 2, 3], sum_target = 4
Expected: [[1, 3], [2, 2]]
Case 3
Input: num_list = [4, 4, 4], sum_target = 8
Expected: [[4, 4]]
Case 4
Input: num_list = [5, 6, 7], sum_target = 6
Expected: [[6]]