美文网首页
每日一题之幂集

每日一题之幂集

作者: this_is_for_u | 来源:发表于2020-04-15 21:00 被阅读0次

题目:幂集

幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素

说明:解集不能包含重复的子集。

示例:

输入: nums = [1,2,3]
输出:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

分析

从题意可以看出是使用回溯思想,由于要求集合中不包含重复的元素,所以可以先把输入集合中重复的元素去掉并且排序,再进行回溯操作,回溯过程中确保始终向后遍历就可以避免出现重复元素。

代码

class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        auto it = std::unique(nums.begin(), nums.end());
        nums.resize(std::distance(nums.begin(), it));
        vector<int> path;
        dfs(nums, 0, path);
        return ret;
    }

    vector<vector<int>> ret;
    void dfs(vector<int>& nums, int index, vector<int>& path) {
        ret.push_back(path);
        if (index == nums.size()) {
            return;
        }
        for (int i = index, size = nums.size(); i < size; ++i) {
            path.push_back(nums.at(i));
            dfs(nums, i+1, path);
            path.pop_back();
        }
    }
};

相关文章

  • 每日一题之幂集

    题目:幂集 幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。 说明:解集不能包含重复的子集。 示...

  • 田氏书法作品欣赏

    初次对田蕴章先生有印象是缘于他的50集(有一种说法是80集)《天津电视台书法讲座》和365集《每日一题每日一字》。...

  • 2020-08-17:为什么HashMap中数组的容量为2的次幂

    前言 每日一题专栏 为什么HashMap中数组的容量为2的次幂? 因为在插入元素时,元素定位的数组位置时把hash...

  • Day 4 Project 我的微信好友

    附:每日一题

  • 并查集基本介绍

    前言 今天在力扣上做了一道每日一题,接触到了并查集这个概念,以前没有了解过,记录在此。 定义 并查集(Disjoi...

  • LeetCode每日一题231: 2的幂

    题目 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1:输入: 1输出: true解释: 20 ...

  • 逍遥笑语之兴趣爱好篇

    原本以为是365集的《每日一题,每日一字》在两百集处暂告结束!现在,连我也说不清是嫌多还是嫌少了。如果说不多,但这...

  • 田蕴章:只学今人的字,会有两个危险

    这篇文章是根据田蕴章老师在《每日一题每日一字》的书法讲座第95集快要结束讲座时说的一段话,有认真的朋友把田蕴章老师...

  • 每日一题-2017-09-01

    2017.9.1每日一题: A senior manager responsible for business t...

  • 青年教师读书反思第十三期

    君子学以聚之,问以辩之,宽以居之,仁以行之 我们的班级一直有每天的“今日事,今日毕”和每日一题的思路很接近,但是...

网友评论

      本文标题:每日一题之幂集

      本文链接:https://www.haomeiwen.com/subject/ccnhvhtx.html