zoukankan      html  css  js  c++  java
  • leetcode-easy-dynamic-121 Best Time to Buy and Sell Stock

    mycode  70.94%

    思路:其实没必要去考虑在计算了一个max-min后,后面又出现了一个新的的最小值的情况,因为res取值就是取自己和新的res的最大值

    在遇见max值之前,遇见新的最小值,直接更新最小值

    在遇见max值之后,遇见新的最小值,没关系啊,因为res已经记录了前面最大值和最小值之间的差啦,只要新的最小值之后能够找到新的最大值使得新的差值比res大,就去更新res,否则res不变啦

    class Solution(object):
        def maxProfit(self, prices):
            """
            :type prices: List[int]
            :rtype: int
            """
            m = float('inf')
            n = 0
            pos1 = 0
            pos2 = 0
            res = 0
            for i in range(len(prices)):
                if prices[i] < m :
                    pos1 = i
                    m = prices[i]
                if prices[i] > m and i > pos1:
                    res = max(res,prices[i]-m)
            return res
                    
        

    简化  77.91%

    class Solution(object):
        def maxProfit(self, prices):
            """
            :type prices: List[int]
            :rtype: int
            """
            m = float('inf')
            res = 0
            for i in range(len(prices)):
                if prices[i] < m :
                    m = prices[i]
                if prices[i] > m :
                    res = max(res,prices[i]-m)
            return res

    参考

    class Solution(object):
        def maxProfit(self, prices):
            """
            :type prices: List[int]
            :rtype: int
            """
            if len(prices)<2:
                return 0
            lowest = prices[0]
            rst = 0
            for price in prices:
                if price<lowest:
                    lowest = price
                rst = max(rst, price-lowest)
            return rst
                
  • 相关阅读:
    数数小木块
    猴子吃桃问题
    整除个数
    大小写互换
    车牌号
    比较字母大小
    队花的烦恼一
    字母小游戏
    字符串逆序输出
    茵茵的第一课
  • 原文地址:https://www.cnblogs.com/rosyYY/p/10999225.html
Copyright © 2011-2022 走看看