移除数组的特定元素
一.题目
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
二. 题目理解
用指针寻找目标元素并删除/覆盖
三.python实现
1.用pop删除, 也可以用del
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
for i in range(len(nums)-1,-1,-1):
if(nums[i] == val):
nums.pop(i)
return len(nums)
2.直接读取数组元素,覆盖特定元素
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
i = 0
for item in nums:
if item != val:
nums[i] = item
i += 1
return i