子集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
相关推荐
我变成萤火虫12 小时前
2026 ICPC沈阳邀请赛Vp补题
数据结构·c++·算法·贪心算法·stl·排序算法·动态规划
神威难绷泪12 小时前
数据结构:二叉树
数据结构·二叉树
风起洛阳@不良使12 小时前
中级软考(软件攻城狮)第3章知识点——数据结构与数据运算(线性结构+非线性结构)
数据结构·算法·链表
AndrewHZ12 小时前
图像处理入门009 | OpenCV 图像读取与显示:imread/imshow 全解析
图像处理·python·opencv·算法·计算机视觉·图像显示
学计算机的计算基12 小时前
TCP 传输层硬核整理:三次握手、四次挥手、拥塞控制一次讲透
java·网络·笔记·网络协议·算法
索西引擎12 小时前
【数据结构】B树与B+树:结构性质、对比分析与磁盘优化机理
数据结构·b树
xx~t12 小时前
嵌入式学习22
数据结构·学习·算法·排序算法
我是苏苏12 小时前
C#基础:不写for循环的五种方式
数据结构·算法·c#
三84413 小时前
webshell缓存绕过/哈希碰撞
算法·哈希算法
致Great20 小时前
Pi 的上下文压缩,到底是怎么工作的?
算法