Problem: 27. 移除元素

思路

我的想法是维护一个需要跳过元素的skip,然后从头遍历一遍,但是有问题

最后按照正常的写法写吧

通俗易懂,维护一个输出的数组长度,然后如果有需要的数组,那么+1

Code1

class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        new_len = 0
        for i in range(len(nums)):
            if nums[i] != val:
                nums[new_len] = nums[i]
                new_len += 1
        return new_len

Code2

class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        skip = 0
        for i in range(len(nums)):
            if nums[i] == val:
                skip += 1
            else:
                nums[i - skip] = nums[i]
        return len(nums) - skip