Skip to content

Latest commit

 

History

History
21 lines (19 loc) · 670 Bytes

File metadata and controls

21 lines (19 loc) · 670 Bytes

基本思路

最基本快慢指针题目.

快慢指针

注意这里和有序数组去重的解法有一个细节差异,我们这里是先给 nums[slow] 赋值然后再给 slow++,这样可以保证 nums[0..slow-1] 是不包含值为 val 的元素的,最后的结果数组长度就是 slow。
Time O(N) Space O(1)

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        if len(nums) == 0:
            return 0

        slow, fast = 0, 0
        while fast < len(nums):
            if nums[fast] != val:
                nums[slow] = nums[fast]
                slow += 1
            fast += 1
        return slow