122买卖股票的最佳时机II

题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii

法一:自己的代码

思路:贪心算法,由于不限制交易次数,所以所有上升的都可以加入最后的结果中,每次都把今天和昨天的作差,如果为正就加入结果中,最后所有正值的和即为结果。

from typing import List
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        for i,j in enumerate(prices[1:]):
            a = prices[i+1] - prices[i]
            if a > 0:
                prices[i] = a
            else:
                prices[i] = 0
        return sum(prices[:-1])
if __name__ == '__main__':
    duixiang = Solution()
    a = duixiang.maxProfit([7,1,5,3,6,4])
    # a = duixiang.maxProfit([5])
    print(a)
View Code

ttt

posted on 2020-02-15 19:55  吃我一枪  阅读(140)  评论(0编辑  收藏  举报

导航