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

【LeetCode】122. 买卖股票的最佳时机 II

122. 买卖股票的最佳时机 II

区间内,差值最大,注意并不是最低值和最大值差值就是最大,例如,3,7,1,3,4。差值最大是7-3

解法一

  1. 若价格一直往下跌,不买入
  2. 假设第一天买入,若买入后价格往下跌,应该下一天买入
  3. 若下一天价格往下跌,应该当天卖出
  4. 若到最后一天,应该清盘,若之前买入卖出,否则维持现状
public int maxProfit(int[] prices) {if (prices == null || prices.length <= 1)return 0;int maxProfit = 0, minPrice = prices[0];for (int i = 1; i < prices.length; i++) {if (prices[i] < minPrice) {          // 若价格比之前低,应该买入minPrice = prices[i];} else if (i == prices.length - 1) { // 最后一天,强制清盘if (prices[i] - minPrice > 0) {maxProfit += (prices[i] - minPrice);}} else if (prices[i + 1] < prices[i]) { // 若后一天价格比当前低&&之前已经买入,就应该当天卖出maxProfit += (prices[i] - minPrice);minPrice = prices[i + 1];}System.out.println(String.join(",", String.valueOf(prices[i]), String.valueOf(minPrice), String.valueOf(maxProfit)));}return maxProfit;
}

解法二

贪心算法,若当天价格比前一天高,即可卖出,获取利润,统计结果利润

public int maxProfit(int[] prices) {if (prices == null || prices.length <= 1)return 0;int maxProfit = 0;for (int i = 1; i < prices.length; i++) {maxProfit += Math.max(0, prices[i] - prices[i - 1]);}return maxProfit;
}
http://www.rkmt.cn/news/11759.html

相关文章:

  • Ansible + Docker 部署 Apache Kafka 3.9 集群
  • 完整教程:K230基础-PWM控制介绍及应用
  • 什么是UDFScript用户自定义脚本
  • 高端网站设计中的微交互:细节如何决定用户体验
  • Openwrt-DDNS 配置详解
  • 【2025.9.16】关于举办PostgreSQL数据库管理人才研修与评测班的通知
  • 隐藏在众目睽睽之下:从PEB中解除恶意DLL的链接
  • 详细介绍:Java 领域中 Java-EE 的异步编程实现
  • 深入解析:豆包Seedream 4.0:全面测评、玩法探索与Prompt解读
  • 破局与进化:火山引擎Data Agent从落地实践到架构未来
  • 五项能力斩获满分!天翼云云WAF获IDC权威认可!
  • lvgl 9.3 style使用导致内存泄漏问题
  • king3399 编译报错
  • 11_Reactor网络模型
  • 「LNOI2022」盒
  • Android 源码中如何生成一个platform JKS 文件?
  • 后端面试八股(go 方向)
  • 分布式数据库迁移OceanBase——基于网易云音乐自研CDC服务的平滑迁移方案
  • 第13章 day14-15 Webpack逆向
  • Viper远程配置踩坑记录
  • 国产智能体脂秤PCBA方案设计
  • 第21章 Day25 抖音最新ab
  • 【cv】cycleGAN代码解析:test.py
  • 第20章 Day24 原型链
  • redis实现定期关单
  • 详细介绍:5G nr频段_5g哪个信道信号强
  • trae 配置mysql_mcp
  • 【cv】cycleGAN代码解析:train.py
  • 深入解析:李宏毅2023机器学习作业 HW01实操
  • 自定义制作docker容器自动自愈容器镜像