class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
# 头尾指针
i, j = 0, len(nums)
while i < j:
if nums[j - 1] == val:
# 尾指针命中,向前偏移
j -= 1
continue
if nums[i] == val:
# 头指针命中,交换头尾,并将尾指针向前,头指针向后偏移
nums[i], nums[j - 1] = nums[j - 1], nums[i]
j -= 1
i += 1
else:
# 未命中,头指针向后偏移
i += 1
# 切片截取
nums = nums[:j]
return j
1.2 面试经典150题-移除元素
于 2024-01-12 01:53:41 首次发布
本文介绍了一种使用双指针的高效算法来移除给定列表中的特定元素。通过头指针和尾指针的移动,实现不遍历整个列表的删除操作,提高了时间复杂度。
86万+

被折叠的 条评论
为什么被折叠?



