leetcode第77题组合

157 阅读1分钟

题目: 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。题目链接

我的JavaScript解法

/**
 * @param {number} n
 * @param {number} k
 * @return {number[][]}
 */
var combine = function(n, k) {
  const result = [];
  const stack = [];
  track(n, k, 1, stack, result);
  return result;
};

const track = (n, k, start, stack, result) => {
  if (stack.length == k) {
    result.push([...stack]);
    return;
  }
  for( let i = start; i <=n; i++) {
    stack.push(i);
    track(n, k, i+1, stack, result);
    stack.pop(i);
  }
}

解析 回溯法解题

  • 时间复杂度: O(n2)O(n^2)