题目
思路
这个题目很简单,从数组中移除给定的元素即可,可以原地删除,也可以删除后的位置填零,但是0得放到最后。
代码
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
# 通过del的方式,size是可变的
size = len(nums)
i = 0 #当前遍历的索引
while i < size:
if nums[i] == val:
del nums[i] # 删除
size -= 1 # 同时size-- ,此时i不需要动
else:
i += 1 #未找到,i++
return len(nums)
这里我直接删除数组的元素,这样导致数组大小会动态变化,不能通过range(len(size))
的方式了。
写成了while
循环,注意删除后的处理即可。