当前位置:   article > 正文

[算法Rust,Go,Python,JS实现)]LeetCode之27-移除元素_rust的slice移除元素

rust的slice移除元素

题目

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:

给定 nums = [3,2,2,3], val = 3,

函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。

你不需要考虑数组中超出新长度后面的元素。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

思路

采用游标,循环遍历数组,那数组中的值与传进来的值比较,如果不相等,则把游标当前位置的值设置成此时的值。
  • 1

Rust实现

impl Solution {
    pub fn remove_element(nums: &mut Vec<i32>, val: i32) -> i32 {
        if nums.len() == 0 {
            return 0
        }
        let mut  i = 0;
        for j in 0..nums.len() {
            if nums[j] != val {
              nums[i] = nums[j];
                i += 1;
            }
        }
        return i as i32;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Go语言

func removeElement(nums []int, val int) int {
	if len(nums) == 0 {
		return 0
	}
	num := 0
	for i:=0;i<len(nums);i++{
		if nums[i] != val {
			nums[num] = nums[i]
			num ++
		}
	}
	return num
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

JavaScript实现

/**
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
var removeElement = function(nums, val) {
    if(nums.length == 0) {
        return 0
    }
    num = 0
    for (let i = 0;i < nums.length;i++) {
        if (nums[i] !== val) {
            nums[num] = nums[i]
            num++
        }
    }
    return num
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Python实现

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        if len(nums) == 0:
            return 0
        num = 0
        for i in range(len(nums)):
            if nums[i] != val:
                nums[num] = nums[i]
                num += 1
        
        return num
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

结果
在这里插入图片描述

代码下载地址

代码下载地址 https://github.com/ai-word

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/850424
推荐阅读
相关标签
  

闽ICP备14008679号