当前位置: 首页 > article >正文

leetcode刷题记录(一百)——121. 买卖股票的最佳时机

(一)问题描述

121. 买卖股票的最佳时机 - 力扣(LeetCode)121. 买卖股票的最佳时机 - 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。示例 2:输入:prices = [7,6,4,3,1]输出:0解释:在这种情况下, 没有交易完成, 所以最大利润为 0。 提示: * 1 <= prices.length <= 105 * 0 <= prices[i] <= 104https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/?envType=study-plan-v2&envId=top-100-liked

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

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

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

示例 1:

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
     注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。 

提示:

  • 1 <= prices.length <= 105
  • 0 <= prices[i] <= 104

(二)解决思路

        每天卖出股票能够获得的最大利润取决于在此之前各天的价格中的最小值。每天可能获得的最大利润中的最大值就是能获得的最大利润。这也是从局部最优推出局部最优,即贪心策略。

class Solution {
    public int maxProfit(int[] prices) {
        int minPrice=Integer.MAX_VALUE;
        int profit=0;
        for(int i=0;i<prices.length;i++){
            minPrice=Math.min(minPrice,prices[i]);
            profit=Math.max(profit,prices[i]-minPrice);
        }
        return profit;  
    }
}

http://www.kler.cn/a/521208.html

相关文章:

  • OpenBMC:编译
  • 【某大厂一面】数组和链表区别
  • React基础
  • 基于vue和elementui的简易课表
  • 人格分裂(交互问答)-小白想懂XXL-JOB
  • JavaScript系列(45)--响应式编程实现详解
  • <iframe>标签和定时调用函数setInterval
  • ubuntu怎么杀死指定的进程的pid
  • 正在更新丨豆瓣电影详细数据的采集与可视化分析(scrapy+mysql+matplotlib+flask)
  • web前端9--定位
  • 向量和矩阵算法笔记
  • Tomcat - 高并发性能参数配置
  • 基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
  • 组件框架漏洞
  • mantisbt添加修改用户密码
  • 如何提升虾皮直播的网络速度
  • UE求职Demo开发日志#11 完善所有普攻伤害判定,普攻加个小特效
  • Kmesh v1.0 正式发布!7 大特性提升网络流量管理效率和安全性
  • 【Rust自学】15.4. Drop trait:告别手动清理,释放即安全
  • 1.24学习
  • 人工智能前沿技术进展与应用前景探究
  • 彻底理解JVM常量池
  • vue3中Teleport的用法以及使用场景
  • 【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】
  • Synology 群辉NAS安装(3)环境的准备工作
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue爬虫技术的咖啡与茶饮料文化平台(高质量源码,可定制,提供文档,免费部署到本地)