【LeetCode 27】Remove Element(Python)

来源:互联网 发布:做微信动图软件叫什么 编辑:程序博客网 时间:2024/06/10 02:28

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.
题目分析:给定一个数组和一个值。删掉所有出现在这个数组中的给定值,然后返回长度。
示例: nums=[1,3,2,3,4,2] val=3—————–结果:4
方法一:

  1. 思路:这道题和LeetCode26题基本类似。也是超级简单,没什么好说的,有问题可以参照我上一篇博客(【LeetCode 26】Remove Duplicates from Sorted Array)
  2. 优点:时间复杂度O(1)
  3. 代码:
class Solution:    def removeElement(self, nums, val):        """        :type nums: List[int]        :type val: int        :rtype: int        """        while val in nums:            nums.remove(val)        return len(nums)

方法二:

  1. 缺点:时间复杂度O(n)
  2. 代码:
class Solution:    def removeElement(self, nums, val):        """        :type nums: List[int]        :type val: int        :rtype: int        """        a=0        for i in nums:            if i!=val:                nums[a]=i                a+=1        return a       
原创粉丝点击