地址:点击打开链接
删除数组中所有和输入值相同的元素,遍历删除的时间复杂度很高,移动元素需要耗费大量时间,所以想到定义一个头结点和尾节点,然后将相同元素移到一起,最后一起删除即可,有问题的地方在于最后endIndex需要判断一下
答案:
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
if nums == []:
return 0
begin = 0
endIndex = len(nums) - 1
while begin < endIndex :
if nums[endIndex] == val:
endIndex -= 1
continue
if nums[begin] == val:
nums[endIndex], nums[begin] = nums[begin], nums[endIndex]
begin += 1
else:
begin += 1
if nums[endIndex] == val:
nums = nums[0:endIndex]
else:
nums = nums[0:endIndex+1]
return len(nums)
本文介绍了一种高效方法来删除数组中所有指定元素,通过引入头结点和尾节点,将相同元素集中并一次性删除,显著提高了遍历删除的操作效率。关键步骤包括循环比较、元素交换与移动,确保最终数组只包含非目标元素。
433

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



