可以通过追踪索引值来进行实现,若是删除某元素,则索引位置不变,若是未删除元素,则索引位置加1
# 原地删除nums中的指定元素值val,并返回删除后的数组长度值
def removeElement(self, nums: List[int], val: int) -> int:
index = 0
while index < len(nums):
if nums[index] == val:
nums.pop(index)
else:
index += 1
return index
# 原地删除已排序数组nums中的重复元素,并返回删除后的数组长度值
def removeDuplicates(self, nums: List[int]) -> int:
preValue = nums[0]
index = 1
while index < len(nums):
if nums[index] == preValue:
nums.remove(nums[index])
else:
preValue = nums[index]
index = index + 1
return index