修正0027.移除元素Rust語言版本

1. 根據題目須回傳i32而非&mut Vec<i32>
2. 改以Owner介紹的雙指針法解題
This commit is contained in:
YiChih Wang
2021-08-26 20:32:58 +08:00
parent 4bbd5716b4
commit 31dfca184b

View File

@ -201,19 +201,17 @@ end
``` ```
Rust: Rust:
```rust ```rust
pub fn remove_element(nums: &mut Vec<i32>, val: i32) -> &mut Vec<i32> { impl Solution {
let mut start: usize = 0; pub fn remove_element(nums: &mut Vec<i32>, val: i32) -> i32 {
while start < nums.len() { let mut slowIdx = 0;
if nums[start] == val { for pos in (0..nums.len()) {
nums.remove(start); if nums[pos]!=val {
nums[slowIdx] = nums[pos];
slowIdx += 1;
} }
start += 1;
} }
nums return (slowIdx) as i32;
} }
fn main() {
let mut nums = vec![5,1,3,5,2,3,4,1];
println!("{:?}",remove_element(&mut nums, 5));
} }
``` ```