hot100-63买卖股票的最佳时机

一、题目

给定一个数组prices,它的第 i 个元素 prices[i]表示一支给定股票第 i 天的价格,只能选择某一天买入这只股票,并且选择未来某一个不同的日子卖出该股票,设计一个算法来计算所能获取的最大利润。返回最大利润,如果不能获取任何利润,返回0。

二、思路

1、遍历数组,记录最小买入价格,每一天都尝试以当前价格卖出,最大利润 = 当前价格 - 历史最低买入价,比较今天卖能赚多少,就能计算出当前的最大利润。

三、代码

java 复制代码
class Solution {
    public int maxProfit(int[] prices) {
        int minPrice = Integer.MAX_VALUE,maxProfit = 0,curProfit = 0;
        for(int price : prices){
            if(minPrice > price){
                minPrice = price;
            }
            curProfit = price - minPrice;
            if(maxProfit < curProfit){
                maxProfit = curProfit;
            }
        }
        return maxProfit;
    }
}
相关推荐
Swift社区2 小时前
LeetCode 464 我能赢吗
算法·leetcode·深度优先
QK_002 小时前
STM--32PWM动态输出
算法
爱吃生蚝的于勒2 小时前
【Linux】零基础深入学习动静态库+深入学习地址
linux·运维·服务器·c语言·数据结构·c++·学习
2401_841495642 小时前
【机器学习】生成对抗网络(GAN)
人工智能·python·深度学习·神经网络·算法·机器学习·生成对抗网络
POLITE32 小时前
Leetcode 560. 和为 K 的子数组 JavaScript (Day 5)
javascript·算法·leetcode
万象.3 小时前
redis通用命令与数据结构
数据结构·数据库·redis
凌乱风雨12113 小时前
从源码角度解析C++20新特性如何简化线程超时取消
前端·算法·c++20
Jim-2ha03 小时前
【平面几何】判断一个点是否在任意多边形的内部
算法
小宇的天下3 小时前
Calibre : 一个简单的DRC rule file
数据结构