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