双指针移除元素的思想其实很简单,就是定义两个快慢指针。当找到要移除元素时,快指针移动到下一个元素,慢指针不动,再次比较两个元素是否相等,如果不相等,则快指针元素覆盖慢指针元素,反之,则继续移动快指针元素。
# -*- coding: utf-8 -*-
"""
@Time : 2022/8/4 19:24
@Author : FJC
@File : 移除元素2.py
@Software: win10 python3.7
"""
class Solution:
def remove_element(self, nums, val):
n = len(nums)
fast,slow = 0,0
for i in range(n):
if nums[fast] == val:
fast += 1
else:
print(slow, fast)
nums[slow]=nums[fast]
slow += 1
fast += 1
print(nums)
return slow
solution = Solution()
print(solution.remove_element([0, 1, 2, 3, 2, 2, 0, 4], 2))