原地修改类的题目一般是采用双指针,本题慢指针用来定位被替换项,快指针用来查找替换项。
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
if len(nums)==0:
return 0
i=j=0
if nums.count(val)==0:
return len(nums)
while True:
j=i
if nums[i]!=val:
i+=1
else:
while nums[j]==val:
if j==len(nums)-1:
return i
j+=1
box=nums[i]
nums[i]=nums[j]
nums[j]=box