快慢指针-移除元素

Problem: 27. 移除元素

文章目录

  • 思路
  • 复杂度
  • Code

思路

采用快慢指针遍历数组,当快指针不是元素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

你可能感兴趣的:(数据结构和算法,leetcode,算法)