Skip to content

Commit 32c2371

Browse files
committed
Update subsetsWithDup.cpp
1 parent 196d566 commit 32c2371

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

C++/subsetsWithDup.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
// Time Complexity: O(2^n)
2-
// Space Complexity: O(1)
1+
// Time: O(n * 2^n)
2+
// Space: O(1)
33

44
class Solution {
5-
public:
6-
vector<vector<int> > subsetsWithDup(vector<int> &S) {
7-
sort(S.begin(), S.end());
8-
vector<vector<int> > result(1);
9-
size_t previous_size = 0;
10-
for (size_t i = 0; i < S.size(); ++i) {
11-
const size_t size = result.size();
12-
for (size_t j = 0; j < size; ++j) {
13-
// only union non-duplicate element or new union set
14-
if (i == 0 || S[i] != S[i-1] || j >= previous_size) {
15-
result.push_back(result[j]);
16-
result.back().push_back(S[i]);
17-
}
5+
public:
6+
vector<vector<int>> subsetsWithDup(vector<int> &nums) {
7+
vector<vector<int>> result(1);
8+
sort(nums.begin(), nums.end());
9+
size_t previous_size = 0;
10+
for (size_t i = 0; i < nums.size(); ++i) {
11+
const size_t size = result.size();
12+
for (size_t j = 0; j < size; ++j) {
13+
// Only union non-duplicate element or new union set.
14+
if (i == 0 || nums[i] != nums[i - 1] || j >= previous_size) {
15+
result.emplace_back(result[j]);
16+
result.back().emplace_back(nums[i]);
1817
}
19-
previous_size = size;
2018
}
21-
return result;
19+
previous_size = size;
2220
}
21+
return result;
22+
}
2323
};

0 commit comments

Comments
 (0)