首页 > 代码库 > 【LeetCode】Subsets (2 solutions)
【LeetCode】Subsets (2 solutions)
Subsets
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], []]
参照Subsets II的解法
解法一:
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { vector<vector<int> > result; int size = S.size(); for(int i = 0; i < pow(2.0, size); i ++) {//2^size subsets vector<int> cur; int tag = i; for(int j = size-1; j >= 0; j --) {//for each subset, the binary presentation has size digits if(tag%2 == 1) cur.push_back(S[j]); tag >>= 1; if(!tag) break; } sort(cur.begin(), cur.end()); result.push_back(cur); } return result; }};
解法二:
class Solution {public: vector<vector<int> > subsets(vector<int> &S) { vector<vector<int> > result; vector<int> cur; result.push_back(cur); //empty set sort(S.begin(), S.end()); for(int i = 0; i < S.size(); i ++) { int exist = result.size(); for(int j = 0; j < exist; j ++) { cur = result[j]; cur.push_back(S[i]); result.push_back(cur); } } return result; }};
【LeetCode】Subsets (2 solutions)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。