您的位置:首页 > 其它

[LeetCode] Subsets (bfs的vector实现)

2014-08-15 15:59 344 查看
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 = 0,end = 1;

while(start < end)
{
temp = res[start];
temp0 = temp;
start++;

int n = 0;
for(int i=0;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
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: