Problem: 27. 移除元素
思路
采用快慢指针遍历数组,当快指针不是元素val时,才将快指针的值给到慢指针,且慢指针加1,这样慢指针就会保证其所有的值都不是val,且顺序和原数组一致
复杂度
时间复杂度:
O ( n ) O(n) O(n)
空间复杂度:
O ( 1 ) O(1) O(1)
Code
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
slow, fast = 0, 0
for n in nums:
if n != val:
nums[slow] = nums[fast]
slow += 1
fast += 1
return slow