leetcode_rust/
remove_duplicates.rs1#![allow(dead_code)]
2
3pub fn remove_duplicates(nums: &mut Vec<i32>) -> i32 {
4 if nums.len() == 0 || nums.len() == 1 {
5 return nums.len() as i32;
6 }
7 let mut count = 0;
8 for i in 0..nums.len() - 1 {
9 if nums[i] != nums[i + 1] {
10 count += 1;
11 nums[count] = nums[i + 1];
12 }
13 }
14
15 count as i32 + 1
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21
22 #[test]
23 fn test1() {
24 let mut nums = vec![1, 1, 2];
25 assert_eq!(remove_duplicates(&mut nums), 2);
26
27 let mut nums = vec![0, 0, 1, 1, 1, 2, 2, 3, 3, 4];
28 assert_eq!(remove_duplicates(&mut nums), 5);
29 }
30}