leetcode_rust/
remove_duplicates.rs

1#![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}