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)

相关推荐
咸鱼加辣5 分钟前
“刻意强调” O(1)
数据结构·算法
南烟斋..9 分钟前
Linux进程管理完全指南:创建、终止、回收与替换
linux·算法
风止何安啊17 分钟前
一场组件的进化脱口秀——React从 “类” 到 “hooks” 的 “改头换面”
前端·react.js·面试
点我头像干啥19 分钟前
机器学习算法之动量法:优化梯度下降的“惯性”策略
人工智能·神经网络·算法·机器学习
XFF不秃头27 分钟前
力扣刷题笔记-下一个排列
c++·笔记·算法·leetcode
Lv117700827 分钟前
Visual Studio中Array数组的常用查询方法
笔记·算法·c#·visual studio
hn小菜鸡32 分钟前
LeetCode 1306.跳跃游戏III
算法·leetcode·游戏
Swift社区33 分钟前
LeetCode 450 - 删除二叉搜索树中的节点
算法·leetcode·职场和发展
长安er38 分钟前
LeetCode 46/51 排列型回溯题笔记-全排列 / N 皇后
笔记·算法·leetcode·回溯·递归·n皇后
天赐学c语言39 分钟前
12.16 - 全排列 && C语言中声明和定义的区别
c++·算法·leecode