diff --git a/leetcode/find-all-numbers-disappeared-in-an-array/solution_1412662490.rs b/leetcode/find-all-numbers-disappeared-in-an-array/solution_1412662490.rs new file mode 100644 index 0000000..d01b05e --- /dev/null +++ b/leetcode/find-all-numbers-disappeared-in-an-array/solution_1412662490.rs @@ -0,0 +1,19 @@ +impl Solution { + pub fn find_disappeared_numbers(mut nums: Vec) -> Vec { + for i in 0..nums.len(){ + let mut cur = nums[i] - 1; + while cur >= 0{ + let idx = cur as usize; + let temp = nums[idx] - 1; + nums[idx] = -1; + cur = temp; + } + } + nums.iter().enumerate().filter_map(|(i, x)| { + match *x != -1 { + true => Some((i + 1) as i32), + false => None + } + }).collect() + } +} \ No newline at end of file