lc90-Subsets II 發表於 2016-09-11 | 分類於 leetcode | 0 comments | 123456789101112131415161718192021222324class Solution {public: vector<vector<int>> subsetsWithDup(vector<int>& nums) { vector<int> sets; vector<vector<int> > ans; sort(nums.begin(), nums.end()); ans.push_back(sets); backtracking(nums, 0, sets, ans); return ans; } void backtracking(vector<int>& nums, int start, vector<int> &sets, vector<vector <int>> &ans) { unsigned long len = nums.size(); if (start >= len) return void(); for (int i = start; i < len; i++) { if (i > start && nums[i] == nums[i-1]) continue; sets.push_back(nums[i]); ans.push_back(sets); backtracking(nums, i + 1, sets, ans); sets.pop_back(); } }};