首页 > 代码库 > [LeetCode] Subsets II
[LeetCode] Subsets II
Given a collection of integers that might contain duplicates, 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,2]
, a solution is:
[ [2], [1], [1,2,2], [2,2], [1,2], []]
class Solution {public: vector<vector<int> > subsetsWithDup(vector<int> &S) { int len = S.size(); vector<int> temp,tempIndex; vector<vector<int> > res,resIndex; res.push_back(temp); resIndex.push_back(tempIndex); if(len<=0) return res; queue<vector<int> > q,qIndex;//bfs q.push(temp); qIndex.push(tempIndex); while(!q.empty()){ temp = q.front(); tempIndex = qIndex.front(); qIndex.pop(); q.pop(); vector<int> temp0 =temp; vector<int> tempIndex0 = tempIndex; for(int i=0;i<len;i++){ if(find(tempIndex.begin(),tempIndex.end(),i)==tempIndex.end()){ tempIndex.push_back(i); temp.push_back(S[i]); sort(temp.begin(),temp.end()); if(find(res.begin(),res.end(),temp)==res.end()){ res.push_back(temp); resIndex.push_back(tempIndex); q.push(temp); qIndex.push(tempIndex); } tempIndex = tempIndex0; temp = temp0; } }//end for }//end while return res; }};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。