121. Best Time to Buy and Sell Stock

题目来源:
 121. Best Time to Buy and Sell Stock
自我感觉难度/真实难度:
 
题意:
 
分析:
 
自己的代码:
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        length=len(prices)
        detalist=[prices[i+1]-prices[i] for i in range(length-1)]
        start=-1
        for k in range(length-1):
            if detalist[k]>0:
                start=k
                break
        if start<0 or start>length:
            return 0
        summ=0
        maxm=-1
        for i in range(start,length):
            summ+=prices[i]
            if start>maxm:
                maxm=summ
            if summ<0:
                summ=0
        return summ

感觉想错了方向,原来的思路是正确的,但是以为错了,想用最大子列和来求解,后来发现有问题

代码效率/结果:
 
优秀代码:
class Solution:
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """
        if len(prices) < 2:
            return 0
        min_p = prices[0]
        ma_p = 0
        for price in prices:
            if price < min_p:
                min_p = price
            if price - min_p > ma_p:
                ma_p = price - min_p
        return ma_p

 

 

代码效率/结果:
 
自己优化后的代码:
 
反思改进策略:

1.思路是有的,可是为什么写的很乱很差?

2.想清楚什么是要求的量,哪些量是用来覆盖的,不断更新的

写题时间时长:

1hour

posted @ 2019-03-20 23:11  dgi  阅读(122)  评论(0编辑  收藏  举报