您的位置:首页 > 其它

LeetCode 78: Subsets

2013-09-04 15:01 453 查看
Difficulty: 3

Frequency: 4

Problem:

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],
[]
]

Solution:

class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<vector<int> > answer(1);
vector<int> S_replace(S);
sort(S_replace.begin(), S_replace.end());
if (S.size()==0)
return answer;

for (int i = 0; i<S_replace.size(); i++)
{
int temp_size = answer.size();
for(int j = 0; j<temp_size; j++)
answer.push_back(answer[j]);

for(int j = temp_size; j<answer.size(); j++)
answer[j].push_back(S_replace[i]);
}
return answer;
}
};

Notes:

There is a same problem in CC 150.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: