27. Remove Element

题目来源:27. Remove Element

 自我感觉难度/真实难度:             写题时间时长:

 题意:

把一个list 中target的数字,去掉。其他数字放到前面去。并且返回开头不是target的长度。

 分析:

一开始,自己是想通过换位置来,把target的数字放到后面去,但是发现这样还是太笨

 自己的代码:

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        l=len(nums)
        j=l-1
        i=0
        while i<=j:
            if nums[i]==val:
                nums[i]=nums[j]
                j-=1
            else:
                i+=1
        return i
                
Runtime: 48 ms, faster than 18.49% of Python3 online submissions forRemove Element.
Memory Usage: 13.4 MB, less than 5.16% of Python3 online submissions for Remove Element.

代码效率/结果:

 优秀代码:

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        l = 0
        for i in range(len(nums)):
            if nums[i] != val:
                nums[l] = nums[i]
                l += 1

        return l

直接把需要的数字,放到前面就可以了

代码效率/结果:24ms

 自己优化后的代码:

 反思改进策略:

1.对于这些数字调换的问题,一定要考虑,换位置之后,是否还有用,如果没有用的话,可以直接采用替换的方法来做

原文地址:https://www.cnblogs.com/captain-dl/p/10947559.html