Subsets

来源:互联网 发布:美工是干什么的 编辑:程序博客网 时间:2024/06/04 19:12

Given a set of distinct integers, S, return all possible subsets.

Note:

  • Elements in a subset must be in non-descending order.
  • The solution set must not contain duplicate subsets.

For example,
If S = [1,2,3], a solution is:

[  [3],  [1],  [2],  [1,2,3],  [1,3],  [2,3],  [1,2],  []]
n个数全集的个数是2^n,0到2^n-1数字的0-n-1位看作标志位,1代表选取,0代表不选取
class Solution {public:    vector<vector<int> > subsets(vector<int> &S) {        int n=S.size(),num=pow(2,n);        sort(S.begin(),S.end());        vector<vector<int>> result(num);        for(int i=0;i<num;i++)            for(int j=0;j<n;j++)                if((i>>j)&0x1) result[i].push_back(S[j]);        return result;    }}


0 0