Leetcode77组合(回溯求解)

给定两个整数 nk,返回范畴 [1, n] 中所有可能的 k 个数的组合。

你能够按 任何程序 返回答案。

答题

  •  * @param {number} n * @param {number} k * @return {number[][]}   */   var combine = function(n, k) {   const res = [];   const stack = [];   function backtrack(start) {       if (stack.length === k) {           res.push([...stack]);           return;       }       for (let i = start; i < n; i++) {           if (stack.indexOf(i + 1) > -1) {               continue;           }           stack.push(i + 1);           backtrack(i);           stack.pop();       }   }   backtrack(0);   return res;
回溯就是深度遍历,就是递归,然而回溯有一个将数值改回到原来的状态.