LeetCode: Subsets

来源:互联网 发布:重庆商陆花软件 编辑:程序博客网 时间:2024/06/17 13:50

题目链接:https://leetcode.com/problems/subsets/#/description
意思就是给定一个数组,输出它的所有子集(空集也包括)

解题方法: 使用回溯法,利用递归来实现。代码如下:

class Solution {public:    vector<vector<int>> subsets(vector<int>& nums) {        vector<vector<int> > result;        vector<int> temp;        result.push_back(temp);   //把空集放入结果中        for(int length =1; length<= nums.size(); length++){   //子集长度从1开始到size            subsetsAssist(nums, 0, length, temp, result);        }        return result;    }    void subsetsAssist(vector<int> &nums, int index, int length, vector<int> &temp, vector<vector<int> > &result){        for(int i =index; i< nums.size(); i++){            temp.push_back(nums[i]);            if(temp.size() == length) result.push_back(temp);            else subsetsAssist(nums, i+1, length, temp, result);            temp.pop_back();        }    }};
原创粉丝点击