# 子集II

  1. 子集II

来源:力扣(LeetCode) 链接 (opens new window):https://leetcode.cn/problems/subsets-ii

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

github (opens new window)

# 问题

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。

# 思路

var subsetsWithDup = function (nums) {
  let result = [];
  let path = [];
  let sortNums = nums.sort((a, b) => {
    return a - b;
  });
  function backtracing(startIndex, sortNums) {
    result.push(path.slice(0));
    if (startIndex > nums.length - 1) {
      return;
    }
    for (let i = startIndex; i < nums.length; i++) {
      if (i > startIndex && nums[i] === nums[i - 1]) {
        continue;
      }
      path.push(nums[i]);
      backtracing(i + 1, sortNums);
      path.pop();
    }
  }
  backtracing(0, sortNums);
  return result;
};

# 参考

https://leetcode.cn/problems/subsets-ii/solution/90-zi-ji-iiche-di-li-jie-zi-ji-wen-ti-ru-djmf/

陕ICP备20004732号-3