LeetCode 算法78 子集

2021/6/14 12:23:30

本文主要是介绍LeetCode 算法78 子集,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

LeetCode 算法78 子集

题目

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
在这里插入图片描述

解法 回溯算法

在这里插入图片描述

class Solution {
public:
    void backtrack(const vector<int>& nums, vector<vector<int>>& res,
                   vector<int>& subset, int index){

        res.push_back(subset);

        for(int i = index; i < nums.size(); i++){
            subset.push_back(nums[i]);
            backtrack(nums, res, subset, i + 1);
            subset.pop_back();
        }
        
    }
    vector<vector<int>> subsets(vector<int>& nums) {
        vector<vector<int>> res;
        vector<int> subset;
        backtrack(nums, res, subset, 0);
        return res;
    }
};


这篇关于LeetCode 算法78 子集的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程