Skip to content

Latest commit

 

History

History
37 lines (33 loc) · 716 Bytes

27.md

File metadata and controls

37 lines (33 loc) · 716 Bytes

题目地址

https://leetcode-cn.com/problems/remove-element/

解答1

def removeElement(nums, val):
    """
        移除元素,返回移除后的长度

        双指针一次遍历替换,算法复杂度O(n)
    """
    i = 0
    n = len(nums)
    while i < n:
        if nums[i] == val:
            nums[i] = nums[n - 1]
            n -= 1
        else:
            i += 1
    return n

解答2

def removeElement(nums, val):
    """
        移除元素,返回移除后的长度

        直接删除元素,算法复杂度O(n)
    """
    n = 0
    for i in range(len(nums)):
        if nums[i - n] == val:
            del nums[i - n]
            n += 1
    return len(nums)