zoukankan      html  css  js  c++  java
  • 最大公共子序列(Runtime faster than 92.73% of Python3)

    其中的算法思想只是较为简单的动态规划,过去各种各样的考试写过很多次C/C++版本的,最近开始用Python做leetcode中的题目时遇到了该题目,很常规的做法竟然得到了意想不到的速度,但内存占用较差,仅超过了5%左右,后边试试有没有更好的方法。

    第一版code:

     def maxSubArray(self, nums: List[int]) -> int:
            d = []
            d.append(nums[0])
            max_ = nums[0]
            for i in range(1, len(nums)):
                aim = len(d)
                if d[aim-1] >= 0:
                    d.append(d[aim-1]+nums[i])
                else:
                    d.append(nums[i])
                #d.append(d[aim] >= 0 ? d[aim]+nums[i] : nums[i])
                if d[aim] > max_:
                    max_ = d[aim]
            return max_
    

    无意间看到了一个大佬的三行写法,真的挺妙的,可是无论是时间还是空间表现都不太好,不像大神说的faster than 98%

    第二版code:

    def maxSubArray(self, nums: List[int]) -> int:
            for i in range(1,len(nums)):
                nums[i] = max(nums[i],nums[i]+nums[i-1])
            return max(nums)
    
  • 相关阅读:
    mongodb笔记一
    mysql的备份和恢复
    explain的type列
    Debian下apache2设置并发
    nginx基本调优
    c语言struct
    Centos 安装nginx + php + mysql
    Debian下系统启动时执行脚本
    centos5.5服务器基本篇
    分治法
  • 原文地址:https://www.cnblogs.com/chuaner/p/11537123.html
Copyright © 2011-2022 走看看