Press "Enter" to skip to content

27. 移除元素

方法一、双指针

题目要求删除数组中等于val的所以元素,输出数组的长度小于或等于输入数组的长度,因此我们就可以把输出数组写在输入数组上。我们可以选择双指针:右指针i指向当前处理的数组元素,左指针cover_pointer指向下一个将要赋值的位置。

如果右指针指向的当前元素不等于valnums[i]输出一个元素,我们就将当前元素不等于val值,则复制到覆盖指针指向的位置,并向后移动一位。

如果右指针指向的当前元素等于val,不能输出到数组中左指针不动,并将右指针向后移动一位。

Python3 代码题解

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        # 初始化覆盖指针和数组长度
        cover_pointer = 0
        length = len(nums)
        for i in range(length):
            if nums[i] != val:
                # 如果当前元素不等于初始值,则复制到覆盖指针指向的位置
                nums[cover_pointer] = nums[i]
                # 覆盖指针向后移动一位
                cover_pointer += 1
        return cover_pointer

Source: LeetCode(The title reproduced in this blog is for personal study use only)

Be First to Comment

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注