子集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
相关推荐
生成论实验室20 分钟前
自动驾驶:一个自主运动的系统
人工智能·算法·机器学习·语言模型·机器人·自动驾驶·安全架构
sheeta199822 分钟前
LeetCode 每日一题笔记 日期:2026.06.16 题目:3612. 字符串特殊符号处理
笔记·算法·leetcode
CoderYanger25 分钟前
A.每日一题:2095. 删除链表的中间节点
java·数据结构·程序人生·leetcode·链表·面试·职场和发展
青山木30 分钟前
Hot 100 --- 矩阵置零
线性代数·算法·leetcode·矩阵·哈希算法
Jasmine_llq30 分钟前
《B4264 [GESP202503 四级] 二阶矩阵》
线性代数·算法·矩阵·二维矩阵遍历枚举所有2×2矩阵·交叉乘积等式条件判断·输入输出快读加速·长整型防溢出计数统计
不知名的老吴1 小时前
面经经验分享|算法和数据结构考察
数据结构·经验分享·算法
叫我:松哥1 小时前
基于Python flask的中学可控智能命题系统设计与实现,整合遗传算法、DeepSeek 大模型及数据库技术构建一体化应用
数据库·人工智能·python·算法·机器学习·flask·遗传算法
CoderYanger1 小时前
A.每日一题:3612. 用特殊操作处理字符串 I
java·程序人生·leetcode·面试·职场和发展·学习方法·改行学it
黎阳之光1 小时前
黎阳之光透明大楼:实景孪生重构智慧建筑全新范式
人工智能·物联网·算法·安全·数字孪生
承渊政道1 小时前
【MySQL数据库学习】(MySQL表的内外连接)
数据库·学习·mysql·leetcode·bash·数据库开发·数据库系统