zoukankan      html  css  js  c++  java
  • leetcodePython【27】: Remove Element

    1 python list可以使用索引的特性,从后往前遍历。
    2 按照list的常规做法,从开头每次验证下一个节点是否与val相同,
    最后验证头结点。
    3使用python list.remove()函数,删除所有的val。

    class Solution:
        def removeElement(self, nums, val):
            """
            :type nums: List[int]
            :type val: int
            :rtype: int
            """
            # method 1
            
            end = len(nums)-1
            while end > -1:
                if nums[end] == val:
                    del nums[end]
                end = end - 1
            return len(nums)
            
            # method 2
            
            if len(nums) == 0:
                return 0
            start = 0
            while 1:
                #print(start,nums)
                if start == (len(nums)-1) or len(nums) == 0:
                    break
                if nums[start+1] == val:
                    del nums[start+1]
                else:
                    start = start + 1 
            if nums[0] == val:
                del nums[0]
            return len(nums)
        
            # method 3
            #nums = [3,3]
            flag = True
            while flag:
                if val in nums:
                    nums.remove(val)
                else:
                    flag = False
            return len(nums)
    

    第一种最快,64ms,O(n)
    第二种第三种差不多,70ms左右。第二种判断条件多,
    第三种remove每次删去的是第一个val值,所以相当于每次删除
    把数组遍历了一遍。0(kn)k是val的个数。

  • 相关阅读:
    JSON
    什么是Jsonp?
    用border做三角形
    前端模块化
    Web 前端
    前端性能优化
    Ajax的原理
    node.js基础语法
    【真·新手初篇】菜鸟们都戳进来看看(欢迎大神指导)
    2019.11.20 开启一天的工作
  • 原文地址:https://www.cnblogs.com/Years4Nancy/p/8414799.html
Copyright © 2011-2022 走看看