北美程序员面试干货

LeetCode 27 [Remove Element]

2016-08-08  本文已影响30人  Jason_Yuan

原题

给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。

样例
给出一个数组** [0,4,4,0,0,2,4,4],和值 4
返回 4 并且4个元素的新数组为
[0,0,0,2]**

解题思路

完整代码

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

# Method 2
class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        while val in nums:
            nums.remove(val)
        return len(nums)
上一篇 下一篇

猜你喜欢

热点阅读