Skip to content

Commit c944cbb

Browse files
authored
Create 0090-subsets-ii
1 parent 9da072d commit c944cbb

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

rust/0090-subsets-ii

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
impl Solution {
2+
fn backtrack(mut i: usize, result: &mut Vec<Vec<i32>>, nums: &Vec<i32>, subset: &mut Vec<i32>) {
3+
if i == nums.len() {
4+
result.push(subset.to_owned());
5+
return;
6+
}
7+
8+
subset.push(nums[i]);
9+
Solution::backtrack(i + 1, result, nums, subset);
10+
subset.pop();
11+
12+
while i + 1 < nums.len() && nums[i] == nums[i + 1] {
13+
i += 1;
14+
}
15+
Solution::backtrack(i + 1, result, nums, subset);
16+
}
17+
18+
pub fn subsets_with_dup(nums: Vec<i32>) -> Vec<Vec<i32>> {
19+
let (mut nums, mut result) = (nums, vec![]);
20+
nums.sort();
21+
22+
Solution::backtrack(0_usize, &mut result, &mut nums, &mut vec![]);
23+
result
24+
}
25+
}

0 commit comments

Comments
 (0)