seo综合查询 站长工具,网站打不开是为什么,群晖frp 外网访问wordpress,响应式网站制作流程图题目描述
给你一个整数数组 nums #xff0c;其中可能包含重复元素#xff0c;请你返回该数组所有可能的子集#xff08;幂集#xff09;。
解集 不能 包含重复的子集。返回的解集中#xff0c;子集可以按 任意顺序 排列。 样例输入
示例 1#xff1a; 输入#xff1…题目描述
给你一个整数数组 nums 其中可能包含重复元素请你返回该数组所有可能的子集幂集。
解集 不能 包含重复的子集。返回的解集中子集可以按 任意顺序 排列。 样例输入
示例 1 输入nums [1,2,2]
输出[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2 输入nums [0]
输出[[],[0]]提示
1 nums.length 10-10 nums[i] 10 题解 本题的回溯解法是之前讲到过的两个问题的综合运用是在子集问题上加上了去重的条件
有关子集问题参见子集回溯、图解-CSDN博客
有关回溯法的去重问题参见组合总和II回溯-CSDN博客 代码
class Solution {
private:vectorint path;vectorvectorint res;
public:void backing(vectorint nums,int startIndex,vectorbool used){res.push_back(path);for(int istartIndex;inums.size();i){if(i0 nums[i-1]nums[i] used[i-1]false)continue;path.push_back(nums[i]);used[i]true;backing(nums,i1,used);used[i]false;path.pop_back();}}vectorvectorint subsetsWithDup(vectorint nums) {sort(nums.begin(),nums.end());vectorbool used(nums.size(),0);backing(nums,0,used);return res;}
};