leecode100-买卖股票的最佳时期-贪心算法

题目

解法1

思路:有题目可知,针对每一个price[i],找到对于它来说,右边的最大值price[j],获得max(price[j]-price[i])即可

复制代码
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        min_num = inf
        max_num = -1
        num = len(prices)
        max_list = [0] * num
        result = 0
        for i in range(num):
            j = num - i -1
            # print('j', j)
            max_num = max(prices[j], max_num)
            max_list[j] = max_num
        max_price = [max_list[i] - prices[i] for i in range(num)]
        result = 0 if max(max_price)<0 else max(max_price)
        return result

解法2

换个角度

思路:有题目可知,针对每一个price[i],找到对于它来说,左边的最小值min_num,获得max(price[i]-min_num)即可

cpp 复制代码
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        num = len(prices)
        min_num = float('-inf')
        result = 0
        for i in range(num):
            min_num = min(min_num, prices[i])
            result = max(prices[i]-min_num, result)
        return result
相关推荐
AI科技星2 小时前
基于wr/c + h/c = 1的螺旋线矢量特性及应用分析
c语言·开发语言·人工智能·opencv·算法·计算机视觉·r语言
颜酱2 小时前
回溯算法专项突破练习(1)
javascript·后端·算法
进击的荆棘2 小时前
优选算法——分治
数据结构·算法·leetcode·分治
暮冬-  Gentle°2 小时前
用Python制作一个文字冒险游戏
jvm·数据库·python
Yupureki2 小时前
《实战项目-个人在线OJ平台》1.项目简介和演示
c语言·数据结构·c++·sql·算法·性能优化·html5
m0_579393662 小时前
C++代码混淆与保护
开发语言·c++·算法
qq_148115372 小时前
C++中的享元模式实战
开发语言·c++·算法
小小小米粒2 小时前
[特殊字符] 正常部署 AI + 流式输出(Stream)[特殊字符] 为什么会 CPU 炸了?
开发语言·python
Yzzz-F2 小时前
Problem - D2 - Codeforces
算法