移除元素

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

执行用时 :72 ms, 在所有 Python3 提交中击败了18.33% 的用户
内存消耗 :13.7 MB, 在所有 Python3 提交中击败了5.37%的用户

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        while True:
            if val in nums:
                nums.remove(val)
            else:
                break
        return len(nums)

执行用时 :68 ms, 在所有 Python3 提交中击败了21.22% 的用户
内存消耗 :13.9 MB, 在所有 Python3 提交中击败了5.37%的用户

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        for i in range(0,len(nums)):
            if val in nums:
                nums.remove(val)
            else:
                break
        return len(nums)

遍历nums所有元素,用list.remove()移除与val相同的值,所有相同的值全部移除后,结束循环,最后返回数组长度,用for循环或者while循环都可以,两者的内存消耗相同,很明显for循环用时比较短
算法题来自:https://leetcode-cn.com/problems/remove-element/

原文地址:https://www.cnblogs.com/llb123/p/13398754.html