美文网首页
leetcode 27. Remove Element

leetcode 27. Remove Element

作者: 咿呀咿呀呦__ | 来源:发表于2017-12-28 19:59 被阅读0次

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.
class Solution:  
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        i = 0
        for j in range(len(nums)):
            if nums[j] != val:
                nums[i] = nums[j]
                i += 1
        return i

Complexity analysis:

Time complexity : O(n). Assume the array has a total of n elements, both i and j traverse at most 2n steps.

Space complexity : O(1).

相关文章

网友评论

      本文标题:leetcode 27. Remove Element

      本文链接:https://www.haomeiwen.com/subject/okzvgxtx.html