leetcode-移除元素27

题目描述

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

示例

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,3,0,4]

双指针

如果 fast 遇到需要去除的元素,则直接跳过,否则,即遇到有效元素,将fast所在元素赋值给slow,同时slow+1。
注: [0,slow)保存有效数,slow即为新数组的长度

代码实现

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        fast = slow = 0
        n = len(nums)
        while fast<n:
            if nums[fast] !=val:
                nums[slow] = nums[fast]
                slow +=1

            fast+=1
            
        # return nums[:slow]
        return slow
posted @ 2022-03-20 19:29  topbookcc  阅读(15)  评论(0编辑  收藏  举报
/* 鼠标点击求赞文字特效 */