LeetCode90:子集②

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

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

在这里插入图片描述

解题思想
要考虑去重的操作

代码

class Solution {
public:
    vector<int> path;
    vector<vector<int>> res;

    void backTracking(vector<int>& nums, int startIndex) {
        res.push_back(path);
        if (startIndex >= nums.size()) return;
        for (int i = startIndex; i < nums.size(); i++) {
            //同一层进行去重操作
            if (i > startIndex && nums[i] == nums[i - 1])
                continue;
            
            path.push_back(nums[i]);
            backTracking(nums, i + 1);
            path.pop_back();
        }
    }

    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        backTracking(nums, 0);
        sort(nums.begin(), nums.end());
        return res;
    }
};

相关推荐

  1. Leetcode 90.子集II - Subset II - Python - 回溯法

    2024-04-25 15:20:04       45 阅读
  2. 78.子集&90.子集2

    2024-04-25 15:20:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 15:20:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 15:20:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 15:20:04       87 阅读
  4. Python语言-面向对象

    2024-04-25 15:20:04       96 阅读

热门阅读

  1. 【Leetcode】33- 搜索旋转排序数组

    2024-04-25 15:20:04       34 阅读
  2. Leetcode30-最小展台数量(66)

    2024-04-25 15:20:04       32 阅读
  3. (五)Servlet教程——Servlet是什么

    2024-04-25 15:20:04       35 阅读
  4. 1002 - 编程求解1+2+3+...+n

    2024-04-25 15:20:04       33 阅读
  5. Gradle的安装配置及使用

    2024-04-25 15:20:04       37 阅读
  6. nvm安装

    2024-04-25 15:20:04       38 阅读
  7. 服务端测试与功能测试

    2024-04-25 15:20:04       30 阅读
  8. 买卖股票+跳跃游戏 贪心算法

    2024-04-25 15:20:04       29 阅读
  9. python小知识:@property、@setter 使用

    2024-04-25 15:20:04       34 阅读
  10. Flutter 之 Widget

    2024-04-25 15:20:04       34 阅读