| 12345678910111213141516171819202122 | func combinationSum3(k int, n int) (ans [][]int) {	stack := make([]int, 0)	for i, sum, l := 1, 0, 0; ; l = len(stack) {		// If need to backtrack		if l == k || 10-i+l < k { // Cut the branches or MLE			if l == 0 { // No previous number to pop				break			} else if l == k && sum == n {				ans = append(ans, make([]int, k))				copy(ans[len(ans)-1], stack)			}			sum -= stack[l-1]			i = stack[l-1] + 1			stack = stack[:l-1]		} else {			stack = append(stack, i)			sum += i			i++		}	}	return ans}
 |