[LeetCode] Subsets (bfs的vector实现)

时间:2024-10-10 21:06:32

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],
[]
]
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
vector<vector<int> > res;
int len = S.size();
vector<int> temp0,temp;
res.push_back(temp);
int start = ,end = ; while(start < end)
{
temp = res[start];
temp0 = temp;
start++; int n = ;
for(int i=;i<len;i++){
if(find(temp.begin(),temp.end(),S[i])==temp.end()){
temp.push_back(S[i]);
sort(temp.begin(),temp.end());
if(find(res.begin(),res.end(),temp)==res.end()){
res.push_back(temp);
n++;
}
temp = temp0;
}//end if
}//end for
end += n;
}//end while
return res;
}//end func
};