LeetCode 学习day3 不喜勿喷

题目:     

        给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

                                                                                        (LeetCode 121. 买卖股票的最佳时机 

问题分析:

        简而言之为求最大差

Python代码:

import numpy as np
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        minprofit =np.inf
        maxprofit = 0
        for i in prices:
            maxprofit=max(i-minprofit,maxprofit)
            minprofit= min(i,minprofit)
        return maxprofit

解释:

        minprofit =np.inf
        maxprofit = 0

        minprofit =np.inf 初始化为无穷大 记录最低价格

        maxprofit = 0  初始化为0 记录最大利润

for i in prices:
    maxprofit=max(i-minprofit,maxprofit)
    minprofit= min(i,minprofit)
maxprofit=max(i-minprofit,maxprofit

遍历 prices 列表 ,max(i-minprofit,maxprofit) 比较,求最大,i-minprofit 为当前遍历到此利润,如果比maxprofit大,然后赋值。

minprofit = min(i,minprofit) 

遍历 prices 列表 , min(i,minprofit)比较,求最小,把小数字留下了,然后进入下次循环。

return maxprofit

最后返回最大利润。

                        

本题来自 LeetCode ,力扣 (LeetCode) 全球极客挚爱的技术成长平台。

若有侵权请联系删除。

你可能感兴趣的:(leetcode,学习,算法,python)