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的个数。

  • 相关阅读:
    清除微信浏览器缓存
    JS实现HTML标签转义及反转义
    mvc中服务器端、客户端属性验证
    Ajax.ActionLink参数详解
    Ajax.BeginForm参数详解
    AjaxHelper简介
    将博客搬至CSDN
    Sequelize小记
    端口: 查看端口状态
    搭建git服务器
  • 原文地址:https://www.cnblogs.com/Years4Nancy/p/8414799.html
Copyright © 2011-2022 走看看