代码随想录 Leetcode90. 子集 II

题目:


代码(首刷自解 2024年2月3日):

cpp 复制代码
class Solution {
private:
    vector<vector<int>> res;
    vector<int> path;
public:
    void backtracking(vector<int>& nums, int startIndex,vector<bool> used) {
        res.push_back(path);
        if (startIndex > nums.size()) return;
        for (int i = startIndex; i < nums.size(); ++i) {
            if (i > 0 && nums[i] == nums[i - 1] && !used[i - 1]) {
                /*递归抽象成的树的同一层:若同一层的某个元素和与他相邻的
                  上一个元素相同则跳过该分支*/
                continue;
            }
            path.push_back(nums[i]);
            used[i] = true;
            backtracking(nums, i + 1, used);
            used[i] = false;
            path.pop_back();
        }
    }
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        vector<bool> used(nums.size(),0);
        backtracking(nums, 0, used);
        return res;
    }
};
相关推荐
一只齐刘海的猫7 分钟前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
Yeats_Liao23 分钟前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
海清河晏11129 分钟前
数据结构 | 八大排序
数据结构·算法·排序算法
我是真菜35 分钟前
彻底理解js中的深浅拷贝
前端·javascript
江畔柳前堤1 小时前
github实战指南07-CLI 与高级技巧
前端·人工智能·chrome·深度学习·github·caffe·issue
kisdiem1 小时前
ReAct:让大模型一边推理,一边行动
前端·react.js·前端框架
西部荒野子1 小时前
JS 如何跑进两个原生世界
前端
RANxy1 小时前
AntV 入门系列第一篇:从零开始的数据可视化之旅
前端
IronMurphy2 小时前
【算法五十七】146. LRU 缓存
算法·缓存
小小小小宇2 小时前
前端 WebRTC 全解析与应用
前端