标签:
Given a set of distinct integers, nums, return all possible subsets.
Note:
For example,
If nums = [1,2,3]
, a solution is:
[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
Array Backtracking Bit Manipulation
#include<iostream> #include<vector> #include<algorithm> using namespace std; void subsets1(vector<int>& S,vector<vector<int> >& temp,vector<int> temp1,int leal,int num) { if(leal==num) { sort(temp1.begin(),temp1.end()); temp.push_back(temp1); return; } leal++; subsets1(S,temp,temp1,leal,num);//这里完事了temp1并没有改变,,,特别注意 temp1.push_back(S[leal-1]);//leal上面加了,这里需要减掉 subsets1(S,temp,temp1,leal,num); return; } vector<vector<int> > subsets(vector<int>& nums) { int num=nums.size(); vector<int> vec; vector<vector<int> >temp; subsets1(nums,temp,vec,0,num); return temp; } int main() { vector<vector<int> > vec1; vector<int> vec; vec.push_back(1);vec.push_back(2);vec.push_back(3); vec1=subsets(vec); for(int i=0;i<vec1.size();i++) { for(int j=0;j<vec1[i].size();j++) cout<<vec1[i][j]<<‘ ‘; cout<<endl; } }
leetcode_78——Subsets(基于DFS的递归)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4551235.html