Skip to content

Commit

Permalink
Create 0090-subsets-ii
Browse files Browse the repository at this point in the history
  • Loading branch information
nirajvenkat committed Jan 25, 2023
1 parent 9da072d commit c944cbb
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions rust/0090-subsets-ii
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
impl Solution {
fn backtrack(mut i: usize, result: &mut Vec<Vec<i32>>, nums: &Vec<i32>, subset: &mut Vec<i32>) {
if i == nums.len() {
result.push(subset.to_owned());
return;
}

subset.push(nums[i]);
Solution::backtrack(i + 1, result, nums, subset);
subset.pop();

while i + 1 < nums.len() && nums[i] == nums[i + 1] {
i += 1;
}
Solution::backtrack(i + 1, result, nums, subset);
}

pub fn subsets_with_dup(nums: Vec<i32>) -> Vec<Vec<i32>> {
let (mut nums, mut result) = (nums, vec![]);
nums.sort();

Solution::backtrack(0_usize, &mut result, &mut nums, &mut vec![]);
result
}
}

0 comments on commit c944cbb

Please sign in to comment.