LeetCode-27 - Remove Element

Given an array and a value, remove all instances of that value in-place and return the new length.

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

Example:

Given nums = [3,2,2,3], val = 3,

Your function should return length = 2, with the first two elements of nums being 2.

Solution

  • 两个哨兵
  • 注意最后的返回结果(前面一个哨兵自加1,最后返回结果为加1后的结果)
class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        j = 0
        for i in range(len(nums)):
            if not nums[i] == val:
                nums[j] = nums[i]
                j += 1
        return j

你可能感兴趣的:(LeetCode-27 - Remove Element)