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

news/2025/9/25 18:34:13/文章来源:https://www.cnblogs.com/WilsonPan/p/19111748

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.mzph.cn/news/917373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VSCode 使用技巧笔记

VSCode 笔记备忘插件Git History (donjayamanne.githistory)可以按行查看 git 历史记录Git Graph (mhutchie.git-graph)Bookmarks (alefragnani.bookmarks)highlight (debugpig.highlight)高亮选中的词 小技巧选择包含…

Ansible + Docker 部署 Apache Kafka 3.9 集群

Ansible + Docker 部署 Apache Kafka 3.9 集群1. 准备工作 1.2 主机列表IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU 架构10.0.0.13 arc-pro-dc01 my.registry.com 16 1 500GB CentOS 7.9.2009 x86_6410.0.0.14…

深入了解一波JVM内存模型

深入了解一波JVM内存模型 JDK体系结构与跨平台特性介绍通过官方的结构图看出,JVM提供底层的平台支持,JRE提供运行环境所必须的类,在这个基础上去跑我们的java程序。JVM为我们屏蔽了操作系统的差异性,使java程序得以…

完整教程:K230基础-PWM控制介绍及应用

完整教程:K230基础-PWM控制介绍及应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

什么是UDFScript用户自定义脚本

本文分享自天翼云开发者社区《什么是UDFScript用户自定义脚本》.作者:郭****迎 UDFScript介绍 用户自定义脚本(User Defined Script,简称UDFScript)是一个可供您快速实现CDN定制化配置的工具箱,当CDN的标准配置无…

高端网站设计中的微交互:细节如何决定用户体验

高端网站设计中的微交互:细节如何决定用户体验在高端网站设计的语境下,“视觉审美”已经不再是唯一的竞争点。真正能打动用户、建立长期信任的,是那些嵌入在每一次操作、点击、过渡中的细节优化。微交互(Microinte…

合肥建设干部学校网站首页凡科 做网站

[原创]好买财富接口测试自动化实践

安徽建设工程信息网站广西建设工程协会网站

项目hbase数据库出现很诡异的assignment &#xff0c;region移动的src和dest都是同一台regionserver&#xff0c;不过时间戳不同&#xff0c;启动的只有一个regionserver&#xff0c; 不知道怎么出现了两个时间戳 分析下源码解决一下 loadbalance只有一个实现 org.apache.hado…

软件开发公司如何通过 UI 设计服务打造差异化竞争力

软件开发公司如何通过 UI 设计服务打造差异化竞争力在数字化浪潮推动下,软件开发行业的竞争越来越激烈。功能上的差异化正逐渐缩小,技术壁垒也因开源生态与低代码平台而降低。在这种背景下,UI设计服务逐渐成为软件开…

CCPC2024-Zhengzhou G Same Sum(线段树)

CCPC2024-Zhengzhou G Same Sum 给一个序列。两种操作:区间加;查询一个偶数长区间,其中的值是否可以两两配对得到和相等。首先知道区间内的值两两配对得到的相等的和值为区间的平均数 m 。 可以转化为,这个区间的值…

短剧小程序开发全攻略:从技术选型到核心实现(前端+后端+运营干货) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Openwrt-DDNS 配置详解

在家庭或小型办公网络环境中,我们通常使用的是动态IP地址,这意味着每次重新连接互联网时,ISP可能会分配一个新的IP地址。这对于需要远程访问家庭网络中的设备(如NAS、监控摄像头或自建服务器)的用户来说是个问题。…

实用指南:Metal - 2. 3D 模型深度解析

实用指南:Metal - 2. 3D 模型深度解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mon…

【2025.9.16】关于举办PostgreSQL数据库管理人才研修与评测班的通知

证书实图考核通过后,由工信部人才交流中心颁发证书,并纳入工信人才数据库 报名方式工信部人才交流中心组织的PostgreSQL认证,从2021起已经运营四年多时间,且获得行业高度认可,人大金仓、金蝶集团、迪思杰、用友、…

Java锁相关问题

1.Java中有那些锁,区别是什么 1.java中的锁主要分为乐观锁和悲观锁,其中CAS是乐观锁,synchronized、Lock是悲观锁。2.乐观锁认为我在操作的时候不会有其余的线程竞争,如果有竞争就自旋等待(CAS)或异常结束(数据…

CDN中使用边缘函数实现自定义编程

本文分享自天翼云开发者社区《CDN中使用边缘函数实现自定义编程》.作者:郭****迎 为什么选择边缘函数千人千面,个性化定制,源站计算成本高: 企业网站为了提升用户转化率,往往需要在源站服务器根据用户历史数据,计…

第一次课程中的所有动手动脑的问题以及课后实验性的问题

第一次课程中的所有动手动脑的问题以及课后实验性的问题 (我将其以压缩包的形式上传到了博客的文件中) https://files.cnblogs.com/files/blogs/848082/第一次课程.zip?t=1758794756&download=true (一)枚举类…

敏捷开发的几个阶段

目录阶段1:认知启蒙期(入门)——“知道敏捷是什么”阶段特征:阶段2:实践落地期(初级)——“能用敏捷做项目”阶段特征:阶段3:问题优化期(中级)——“能解决敏捷中的坑”阶段特征:阶段4:体系化期(高级)—…

公司网站开发怎么做账wordpress更新网站内容

python脚本查找文件是否存在的方法&#xff1a;1、使用os模块os模块中的os.path.exists()方法用于检验文件是否存在。判断文件是否存在import osos.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False2、使用Try语句可以在程序中直接使用open()方法来检查…

网站建设一年600js做的网站

java微服务面试题 Q:为什么要用微服务&#xff1f;微服务有哪些优势&#xff1f; 单体应用把所有功能都堆放在一起&#xff0c;改动影响大&#xff0c;风险高。 微服务具有以下优势&#xff1a; 针对特定服务发布&#xff0c;影响小&#xff0c;风险小&#xff0c;成本低。 频…