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

[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ

题目:

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。

  1. 初始化:
    • 如果数组长度小于等于1,直接返回0(无法获利)
    • hold = -prices:第一天买入股票,利润为负
    • notHold = 0:第一天不买股票,利润为0
  2. 遍历每一天(从第二天开始):
    • 更新 hold[i]
      hold[i] = Math.max(hold[i - 1], notHold[i - 1] - prices[i])
      意味着今天持有股票的最大利润可能来自:
      • 昨天就持有股票(hold[i - 1]
      • 昨天不持有,今天买入(notHold[i - 1] - prices[i]
    • 更新 notHold[i]
      notHold[i] = Math.max(notHold[i - 1], hold[i - 1] + prices[i])
      意味着今天不持有股票的最大利润可能来自:
      • 昨天就不持有股票(notHold[i - 1]
      • 昨天持有,今天卖出(hold[i - 1] + prices[i]
public class no_122 {public static void main(String[] args) {int[] price = {1, 2, 3, 4, 5};System.out.println(maxProfit(price));}public static int maxProfit(int[] prices) {int n = prices.length;if (n <= 1) return 0;int[] hold = new int[n];int[] notHold = new int[n];hold[0] = -prices[0];notHold[0] = 0;for (int i = 1; i < n; i++) {//  今天持有股票的最大利润 = max(昨天持有,昨天不持有今天买入)hold[i] = Math.max(hold[i - 1], notHold[i - 1] - prices[i]);//  今天不持有股票的最大利润 = max(昨天就不持有, 昨天持有今天卖出)notHold[i] = Math.max(notHold[i - 1], hold[i - 1] + prices[i]);}return notHold[n - 1];}
}

http://www.lryc.cn/news/386924.html

相关文章:

  • openstack Y版在ubuntu22.04上不能创建超过8个cpu的虚拟机问题解决
  • 全国31省细分产品出口数据集(2002-2022年)
  • 1,Windows-本地Linux 系统(WSL)
  • K8S 角色/组件及部署方式的简单概述
  • 堆【模板】小根堆堆【模板】大根堆(回)
  • 【JavaScript】JavaScript简介
  • pg_rman:备份和恢复管理工具#postgresql培训
  • 【小学期】常用基于Swing的七个静态界面
  • JavaScript高级程序设计(第四版)--学习记录之迭代器与生成器(上)
  • 51单片机第9步_结构和联合
  • lua5.3.4的Linux的库文件下载地址
  • 网盘挂载系统-知识资源系统-私域内容展示系统
  • 水位自动监测摄像机
  • 基于SSM+Jsp的疫情居家办公OA系统
  • phpstorm2024代码总是提示“no usages”或者“无用法”解决办法
  • Unity WebGL项目问题记录
  • 如何级联移位寄存器(74HC595)
  • 找到你的专属健康食谱:结合肠道菌群与疾病状态
  • 大模型微调实战之基于星火大模型的群聊对话分角色要素提取挑战赛:Task01:跑通Baseline
  • 大数据开发如何管理项目
  • 在实施数据加密时,有哪些常见的加密技术可供选择?
  • 容易涨粉的视频素材有哪些?容易涨粉的爆款短素材库网站分享
  • 2024 CISCN 华东北分区赛-Ahisec
  • Linux驱动开发笔记(十三)Sysfs文件系统
  • Numpy array和Pytorch tensor的区别
  • 【面试系列】数据科学家 高频面试题及详细解答
  • mysql是什么
  • 【软件工程】【22.04】p1
  • 简单说下GPT-4
  • 力扣第一道困难题《3. 无重复字符的最长子串》,c++