美文网首页Leetcode刷题笔记
第三十四天 Best Time to Buy and Sell

第三十四天 Best Time to Buy and Sell

作者: 业余马拉松选手 | 来源:发表于2018-09-26 00:42 被阅读11次

    今天心情,或是说现在心情,真的特别特别不好

    因为一些杂事,心情很郁闷,想发火,却又发不出来,状态特别不好

    强逼着自己刷了一道不太擅长的题目

    https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/submissions/1

    这道题,是可以通过画图来思考的

    简单描述下,其实我们需要的就从价格的最低点买入,然后在最高点卖出。那么当然这是有时间顺序的,同时你可以发现,每次的相邻之间的价格高低的区间,叠加起来,就是最低点买入最高点卖出的间隔。

    好吧,这一步确实有点抽象,但如果能想明白了,代码就很简单了,也很好理解,在网上还摘抄了这样一段理解,感觉更简单些。

    我们都知道炒股想挣钱当然是低价买入高价抛出,那么这里我们只需要从第二天开始,如果当前价格比之前价格高,则把差值加入利润中,因为我们可以昨天买入,今日卖出,若明日价更高的话,还可以今日买入,明日再抛出。以此类推,遍历完整个数组后即可求得最大利润。

    class Solution(object):
        def maxProfit(self, prices):
            """
            :type prices: List[int]
            :rtype: int
            """
            ret = 0
            for i in range(1,len(prices)):
                if prices[i]>prices[i-1]:
                    ret += prices[i]-prices[i-1]
            return ret
    

    心情不好,任务也没完成,困,怒

    相关文章

      网友评论

        本文标题:第三十四天 Best Time to Buy and Sell

        本文链接:https://www.haomeiwen.com/subject/idiroftx.html