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

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

目录

一.题目描述

二.解题思路

三.代码

四.重点


一.题目描述

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

在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。然而,你可以在同一天多次买卖该股票,但要确保你持有的股票不超过一股。

返回你能获得的最大利润

示例 1:

输入:prices = [7,1,5,3,6,4]输出:7解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。 最大总利润为 4 + 3 = 7 。

示例 2:

输入:prices = [1,2,3,4,5]输出:4解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。 最大总利润为 4 。

示例 3:

输入:prices = [7,6,4,3,1]输出:0解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。

提示:

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

二.解题思路

非常简单,思路就是:

  1. 遍历价格数组,从第 2 天开始(i = 1)。

  2. 只要今天价格比昨天高,我就假设昨天买了今天卖,把差价加到总利润里。

  3. 这样累加所有上涨波段的差价,就是最大利润。

因为每天可以买卖多次,所以这种「捕捉每一个上涨段」的做法是合法的。

三.代码

class Solution { public int maxProfit(int[] prices) { int money = 0; for(int i=1; i<prices.length; i++){ money = prices[i] > prices[i-1]? money + prices[i] - prices[i-1] : money; } return money; } }

四.重点

注意:

①for循环的判断终止条件别写错了。

②三元表达式别写错了。

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~

http://www.jsqmd.com/news/470454/

相关文章:

  • 2026深度解答:云南大学本科专业与特色专业全解析
  • Flutter 三方库 automap 的鸿蒙化适配指南 - 让模型转换回归“自动导航”,打造鸿蒙应用专家级的对象映射中台
  • 本地部署时间追踪工具 TimeTagger 并实现外部访问(Windows 版本)
  • ROS2的核心概念C-服务
  • 实体店0客流是摆设?那是直播间!
  • 编写计算光合作用效率,按光照,CO2浓度,优化室内绿植摆放位置。
  • CNC自动编程厂家怎么选?
  • 多语言技术栈如何共用IP离线库?Java、Python、Go 的加载实践
  • 抗菌母粒供应商精选指南
  • 写好了SCI论文,哪里查重放心一点?
  • 艺术二维码 API 申请及使用
  • 二战中的无人艇:德国FL-Boote自杀式攻击艇
  • tomcat相关知识点
  • 免费PC端在线流程图软件 中文界面无广告超流畅””
  • 【保姆级教程】大模型从入门到实战:手把手教你掌握大模型技术
  • 家具哪里多哪个品牌值得信赖
  • 小龙虾OpenClaw绑定微信
  • 百元头戴式耳机哪个牌子音质好?分享十大音质最好的头戴式耳机
  • 推荐榜单2026年top5产品解锁海外用工新选择
  • AI龙虾OpenClaw 爆火!初步了解,领养一只小龙虾
  • 揭秘租测云租手机让效果翻倍的基础逻辑与实战指南
  • 进行微信公众号的通知
  • OpenCLAW 讲师叶梓OpenCLAW 技术培训提纲
  • 深度解析:长途城际拼车为何无需LBS定位?
  • RJ45网口镀金厚度怎么选?3u“、6u“、15u“、30u“ 到底有什么区别?
  • Vite + create-vue创建Vue项目
  • 基于点提示的Swin-UNet交互式分割:当Transformer学会看“点”
  • sqlilabs less-3 笔记
  • IDEA创建Spring Boot项目教程
  • 2026年流行的“穷装风“装修:花最少的钱装出最舒服的家,年轻人都爱这么装