题目要求
移除数组中等于指定值的元素,要求不使用额外空间
双指针法
思路
两个指针 i 和 j,如果 j 指向的元素不等于 val,就把 nums[j] 赋值给 nums[i] ,否则 j 向后移,这样就可以把不等于val的值都保留
代码
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
i = 0
j = 0
while j < len(nums):
if nums[j] != val:
nums[i] = nums[j]
i += 1
j += 1
else:
j += 1
return i