36.LeetCode122. 买卖股票的最佳时机II

2018-10-03  本文已影响11人  月牙眼的楼下小黑

将数据进行可视化后发现: 买入点是谷点(V),卖出点是峰点(P),一对相邻的峰点和鼓点对应一次交易。每次交易获利等于峰点和谷点的差值。只要依次找到 成对 的谷点和峰点,且 谷点在前,峰点在后, 累加高度差即可求得最大利润。

class Solution(object):
    def maxProfit(self, prices):
        """
        :type prices: List[int]
        :rtype: int
        """
        profit = 0
        if not prices:
            return 0
        i = 0
        while(i < len(prices) - 1):
            if (i < len(prices) - 1 and prices[i] >= prices[i + 1]):
                i += 1
            v = prices[i]
            if(i < len(prices) - 1 and prices[i] <= prices[i + 1]):
                i += 1
            p = prices[i]
            profit += p - v
        return profit                        

暂略。

上一篇下一篇

猜你喜欢

热点阅读