leetcode-27. Remove Element

龍仔發表於2019-02-16

題目闡釋:

根據告知的元素,從列表中刪除,並計算剩餘元素的個數

重點:

通過移動一個列表的元素,記錄index位置,將一個列表內的所有元素分類。
計算剩餘元素的個數,也可以看成先分類,再統計。

Given an array nums and a value val, 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 1:

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

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

It doesn`t matter what you leave beyond the returned length.

Example 2:

Given nums = [0,1,2,2,3,0,4,2], val = 2,

Your function should return length = 5, with the first five elements of nums containing 0, 1, 3, 0, and 4.

Note that the order of those five elements can be arbitrary.

It doesn`t matter what values are set beyond the returned length.

class Solution:
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        start,end=0,len(nums)-1
        while start<=end:
            if nums[start]==val:
                nums[start],nums[end]=nums[end],nums[start]
                end-=1
            else:
                start+=1
        return start

相關文章