【贪心算法】LC 121.买卖股票的最佳时机

文章目录

前言

本专栏文章为《LeetCode 热题 100》的刷题题解,相关内容如有侵权,立即删除。

一、题目

1、原题链接

121.买卖股票的最佳时机

2、题目描述

二、个人思路整理

1、思路分析

核心思路:在遍历数组的同时,不断更新历史最低买入价,并计算当前价格卖出能赚的利润,实时维护最大利润。

核心公式:当天的最大收益=max(之前的最大收益,今天价格-历史最低价)

核心操作时:维护最小买入价格、计算新利润来维护最大利润。

复杂度分析

  • 时间复杂度: O ( n ) O(n) O(n),一个for循环,一次遍历。
  • 空间复杂度: O ( 1 ) O(1) O(1),仅变量空间,常数阶,未开辟其他辅助空间 。

2、解题代码

cpp 复制代码
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int minPrice = INT_MAX; // 最低买入价格
        int ans = 0; // 最大利润
        for (auto price : prices) {
            // 尝试更新最低买入价格
            minPrice = min(minPrice, price);
            // 尝试更新最大利润
            ans = max(ans, price - minPrice);
        }
        return ans;
    }
};

三、知识风暴

  • INT_MAX:定义在 <climits> 中,表示 int的最大值(在绝大多数现代 32 位和 64 位系统中,int 占 4 个字节(32 位)。其中最高位为符号位,因此 int 的取值范围是 − 2 31 -2^{31} −231 到 2 31 − 1 2^{31} - 1 231−1),INT_MAX具体数值为:2147483647(约 2.14 × 10 9 2.14 \times 10^9 2.14×109,即 21 亿多)。
  • 防溢出:对 INT_MAX 做加法会溢出变负数,需做加法时改用 long long 或用 0x3f3f3f3f(约 10 亿,图论/DP 常用无穷大)替代。
相关推荐
AiNightVision10 分钟前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.3331 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
小郎君6582 小时前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法
JJJennie7772 小时前
MAI Gateway私有化部署全攻略:大模型网关如何接入?附架构图
算法·gateway·ai网关·魔芋ai
東隅已逝,桑榆非晚2 小时前
算法3.双指针法-快乐数
c++·笔记·学习·算法
专注仿真2 小时前
卷积神经网络(CNN)算法详解
人工智能·python·算法·代码·大模型训练
FII工业富联科技服务2 小时前
多智能体如何进入制造现场?从业务协同到数字孪生验证
大数据·人工智能·算法·机器人·制造·数字孪生
≮傷£≯√3 小时前
httpserver_QNetWorkClient
算法
Evand J3 小时前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接
算法·matlab·卡尔曼滤波·永磁同步电机·ukf·pmsm·位置估计
货拉拉技术3 小时前
记忆即智能:重构对话式AI Agent认知基座的四层渐进式记忆与自进化系统
人工智能·算法