121. 买卖股票的最佳时机 easy 贪心算法


时间复杂度:O(n),只遍历一次数组

空间复杂度:O(1),只用两个变量存储状态

买入点一旦确定,卖出价格越高利润越大

只要历史最低买入点没变,卖出价格增加时利润只会增大或者不变

python 复制代码
class Solution:
    def maxProfit(self, prices: List[int]) -> int:

        # buy:  最低买入点(动态更新)
        # profit: 当日卖出,根据最低买入点,可以赚多少(动态更新)

        # 只遍历一遍
        buy = float('inf')  # 最低买入点初始值,无穷大
        profit = 0    # 初始利润值,0

        for price in prices:   # 假设每一天都卖,当日卖出,根据最低买入点,可以赚多少(动态更新profit)
            
            #  最低买入点(动态更新)
            if price < buy:
                buy = price   

            # 只要最低买入点没更新,就可以算日卖出,根据最低买入点,可以赚多少
            elif price-buy > profit:   # 动态更新profit
                profit = price-buy

        return profit
                
相关推荐
这料鬼有毒21 小时前
二刷hot100-78.子集
算法·leetcode·职场和发展
医用门1 天前
医院钢制门厂家有哪些品牌好的
leetcode
mifengxing1 天前
LeetCode热题100——字母异位词分组
java·算法·leetcode·职场和发展·哈希表·hot100
小欣加油1 天前
leetcode41 缺失的第一个正数
数据结构·c++·算法·leetcode
木井巳1 天前
【DFS解决floodfill算法】岛屿数量
java·算法·leetcode·深度优先
凯瑟琳.奥古斯特1 天前
力扣1003题C++解法详解
开发语言·c++·算法·leetcode·职场和发展
剑挑星河月1 天前
98.验证二叉搜索树
java·算法·leetcode
罗超驿1 天前
16.滑动窗口经典例题:最小覆盖子串(LeetCode 76)算法原理剖析
算法·leetcode·职场和发展
fengxin_rou1 天前
leetcode二维数组高频面试题详解:48.原地旋转矩阵 + 240.杨氏矩阵查找算法深度剖析
数据结构·leetcode·java 算法·面试算法
8Qi81 天前
LeetCode 518:零钱兑换 II(Coin Change II)—— 题解 ✅
java·算法·leetcode·动态规划·完全背包