LeetCode 面试经典150题 121.买卖股票的最佳时机

题目

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

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

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

思路

代码

java 复制代码
class Solution {
    public int maxProfit(int[] prices) {
        int ans = 0;
        int minPrice = prices[0];
        for (int p : prices) {
            ans = Math.max(ans, p - minPrice);
            minPrice = Math.min(minPrice, p);
        }
        return ans;
    }
}

性能:时间复杂度O(n) 空间复杂度O(1)

相关推荐
会员源码网9 分钟前
使用`mysql_*`废弃函数(PHP7+完全移除,导致代码无法运行)
后端·算法
木心月转码ing1 小时前
Hot100-Day10-T438T438找到字符串中所有字母异位词
算法
晴殇i1 小时前
CommonJS 与 ES6 模块引入的区别详解
前端·javascript·面试
HelloReader2 小时前
Wi-Fi CSI 感知技术用无线信号“看见“室内的人
算法
青青家的小灰灰2 小时前
金三银四面试官最想听的 React 答案:虚拟 DOM、Hooks 陷阱与大型列表优化
前端·react.js·面试
颜酱4 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
zone77394 小时前
001:LangChain的LCEL语法学习
人工智能·后端·面试
zone77394 小时前
001:简单 RAG 入门
后端·python·面试
前端Hardy5 小时前
告别 !important:现代 CSS 层叠控制指南,90% 的样式冲突其实不用它也能解
前端·vue.js·面试
前端Hardy5 小时前
Vue 3 性能优化的 5 个隐藏技巧,第 4 个连老手都未必知道
前端·vue.js·面试