用Rust刷LeetCode之27 移除元素

27. 移除元素

难度: 简单

原描述:

alt

新描述:

alt



func removeElement(nums []int, val int) int {
   
 for i := 0; i < len(nums); i++ {
  if nums[i] == val {
   nums = append(nums[:i], nums[i+1:]...)
   i--
  }
 }
 return len(nums)

}
alt

Rust 版本


下面这种写法编译无法通过:

pub fn remove_element(nums: &mut Vec<i32>, val: i32) -> i32 {
   
    for i in 0..nums.len() {
        if nums[i] == val {
            nums.remove(i);
            i = i - 1;
        }
    }

    return nums.len() as i32;
}

error[E0384]: cannot assign twice to immutable variable i


在 Rust 中,for 循环中的循环变量是不可变的,因此不能直接修改 i 的值。如果想在循环中修改 i 的值,可以改用 while 循环,并手动更新 i 的值。以下是一个示例的实现:

fn main() {
   
    let mut nums = vec![3141592654];
    let len = remove_element(&mut nums, 4);
    println!("移除元素后vec的长度为: {:?}", len); // 输出: 8
}

pub fn remove_element(nums: &mut Vec<i32>, val: i32) -> i32 {
    let mut i = 0;

    while i < nums.len() {
        if nums[i] == val {
            nums.remove(i);
        } else {
            i += 1;
        }
    }

    nums.len() as i32
}
alt

本文由 mdnice 多平台发布

相关推荐

  1. LeetCode[27]元素

    2023-12-10 09:12:02       64 阅读
  2. LeetCode 27.元素

    2023-12-10 09:12:02       31 阅读
  3. LeetCode 27.元素

    2023-12-10 09:12:02       34 阅读
  4. LeetCode27.数组元素

    2023-12-10 09:12:02       70 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-10 09:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-10 09:12:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-10 09:12:02       82 阅读
  4. Python语言-面向对象

    2023-12-10 09:12:02       91 阅读

热门阅读

  1. 用Go写一个缓存工具

    2023-12-10 09:12:02       63 阅读
  2. 本地部署 Qwen-Audio-Chat

    2023-12-10 09:12:02       64 阅读
  3. YOLOX 学习笔记

    2023-12-10 09:12:02       51 阅读
  4. Django模板

    2023-12-10 09:12:02       53 阅读
  5. Django模型

    2023-12-10 09:12:02       51 阅读
  6. properties配置和读取

    2023-12-10 09:12:02       42 阅读
  7. React和Preact 这样处理className更优雅

    2023-12-10 09:12:02       62 阅读
  8. wordpress小记

    2023-12-10 09:12:02       53 阅读
  9. spring 单元测试 Junit

    2023-12-10 09:12:02       54 阅读
  10. Spring Boot与Redis的整合

    2023-12-10 09:12:02       46 阅读
  11. d8week17

    d8week17

    2023-12-10 09:12:02      66 阅读
  12. centos7部署docker环境

    2023-12-10 09:12:02       55 阅读