【数组】——移除元素
由于数组的存储空间是连续的,不能直接删除元素,只能覆盖
暴力解法:
1.获得数组长度
2.开始第一层循环,寻找要删除的元素(遍历数组元素)
3.寻找到删除元素,开始第二层循环,该元素后的数依次相前移(更新数组)
3.返回数组当前长度
时间复杂度为\(O(n^2)\),空间复杂度为\(O(1)\)
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
size = len(nums)
i=0
while i<size:
if nums[i] == val:
j=i+1
while j<size:
nums[j-1] = nums[j]
j=j+1
i=i-1
size=size-1
i=i+1
return size
双指针法:
1.
时间复杂度\(O(n)\),空间复杂度\(O(1)\)
class Solution(object):
def removeElement(self, nums, val):
"""
:type nums: List[int]
:type val: int
:rtype: int
"""
slow=0
fast=0
size=len(nums)
while fast<size:
if val != nums[fast]:
nums[slow] = nums[fast]
slow+=1
fast+=1
return slow
标签:val,nums,int,复杂度,元素,数组,移除
From: https://www.cnblogs.com/z-qhhh/p/17099673.html