Skip to content
js
/*
 * @lc app=leetcode.cn id=78 lang=javascript
 *
 * [78] 子集
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @return {number[][]}
 */
// 递归回溯
var subsets = function (nums) {
  let res = [];
  function backTracking(index, list) {
    if (index === nums.length) {
      //考察完毕
      res.push(list.slice()); //推入解
      return;
    }
    list.push(nums[index]); //选择
    backTracking(index + 1, list); //考察下一个数是否选择
    list.pop(); //不选择
    backTracking(index + 1, list); //考察下一个数是否选择
  }
  backTracking(0, []);
  return res;
};
// @lc code=end

上次更新于: