子集II(力扣90)

解题思路:used判断是否出现过,然后遍历就好了

具体代码如下:

class Solution {

public:

vector<vector<int>>result;

vector<int>path;

void travelBack(vector<int>&nums,int startIndex,vector <bool>&used){

result.push_back(path);

for(int i=startIndex;i<nums.size();i++){

if(i>0&&numsi-1==numsi&&usedi-1==false){

continue;

}

path.push_back(numsi);

usedi=true;

travelBack(nums,i+1,used);

path.pop_back();

usedi=false;

}

return ;

}

vector<vector<int>> subsetsWithDup(vector<int>& nums) {

sort(nums.begin(),nums.end());

vector<bool>used(nums.size(),false);

travelBack(nums,0,used);

return result;

}

};

题目如下:

给你一个整数数组 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
相关推荐
乐迪信息几秒前
如何通过AI防爆摄像机精准判断船舶超速?
大数据·人工智能·算法·安全·目标跟踪
雨落在了我的手上17 分钟前
Java数据结构(十一):优先级队列(堆)
数据结构
大圣编蚕1 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
小玮看世界2 小时前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
黎阳之光2 小时前
数字孪生赋能全域水网,实现水资源管控与节水降碳双向提升
人工智能·物联网·算法·安全·数字孪生
随意起个昵称2 小时前
【BFS】冰面滑行
算法·宽度优先
(Charon)3 小时前
【C++】定时器进阶:使用最小堆管理定时任务
c++·算法
hansang_IR3 小时前
【题解】 [省选联考 2021 A/B 卷] 卡牌游戏
c++·算法
这个DBA有点耶4 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
贾伟康4 小时前
【口算王|01】HarmonyOS ArkTS 口算题生成实战:按年级、运算类型和难度生成可控题目
算法·harmonyos·arkts·随机生成·口算题