123 Best time to buy and sell stock iii

 

题解: 

根据题目要求,最多进行两次买卖股票,而且手中不能有2只股票,就是不能连续两次买入操作。

所以,两次交易必须是分布在2各区间内,也就是动作为:买入卖出,买入卖出。

进而,我们可以划分为2个区间[0,i]和[i,len-1],i可以取0~len-1。

那么两次买卖的最大利润为:在两个区间的最大利益和的最大利润。

一次划分的最大利益为:Profit[i] = MaxProfit(区间[0,i]) + MaxProfit(区间[i,len-1]);

最终的最大利润为:MaxProfit(Profit[0], Profit[1], Profit[2], ... , Profit[len-1])。\

参考:http://www.cnblogs.com/springfor/p/3877068.html

 

public class Solution {public int maxProfit(int[] prices) {if (prices == null || prices.length <= 1) {return 0;}int[] left = new int[prices.length];int[] right = new int[prices.length];
//DP from left to right
int min = prices[0];for (int i = 1; i < prices.length; i++) {min = prices[i] < min ? prices[i] : min;left[i] = Math.max(left[i - 1], prices[i] - min);}
//DP from right to left
int max = prices[prices.length - 1];for (int i = prices.length - 2; i >= 0; i--) {max = prices[i] > max ? prices[i] : max;right[i] = Math.max(max - prices[i], right[i+1]);}int profit = 0;for (int i = 0; i < prices.length; i++) {profit = Math.max(left[i] + right[i], profit);}return profit;} }

 

转载于:https://www.cnblogs.com/77rousongpai/p/4521403.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358812.shtml

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

相关文章

解决 invalid input detected at ‘^’ marker的问题

粉丝求助&#xff1a; 解决办法&#xff1a; Switch开不了机&#xff08;机器bai黑屏&#xff0c;如果找很黑的房间能看到屏du幕内部有zhi点透亮光&#xff09;&#xff1b; 解决方法&#xff1a;这dao是假死机&#xff0c;按住电源键12秒强制关机&#xff0c;然后再按电源键能…

PyCharm社区版设置简体中文界面

点击“File”&#xff0c;出现的菜单中点击“Settings”, 在弹出的界面中&#xff0c;选“Plugins”&#xff0c; 然后在右边输入框中输入“chinese”, 在搜索结果中&#xff0c;选中Chinese(Simplified) Language Pack&#xff0c;点击右边的“install”即可。

JMS和AWS SQS的更多高级内容

如您所知&#xff0c; AWS中的SQS SQS代表“简单队列服务”。 最近&#xff0c;在使用它的同时&#xff0c;我发现了将其称为“简单”的原因之一。 在之前的两篇文章&#xff08; 此处和此处 &#xff09;中&#xff0c;我展示了结合Spring Framework将SQS用作JMS队列提供程序 …

w10家庭版安装java不_小编为你分析win10系统安装不了java的设置办法

许多win10系统用户在工作中经常会遇到win10系统安装不了java的情况&#xff0c;想必大家都遇到过win10系统安装不了java的情况吧&#xff0c;那么应该怎么处理win10系统安装不了java呢&#xff1f;我们依照1、查看自己的电脑是32位的还是64位的(x86代表32位的)。java安装要求比…

用C语言实现津巴布韦这道算法题?

粉丝求助: 题目内容如下: 5、津巴布韦 由于计划经济失败,津巴布韦称为世界上通胀率最高的国家。这里的物价即使在一天中也会持续上涨,所以必须实时更新物品价格。例如:1个鸡蛋的价格为35亿津巴布韦元,所以超市做了每位数字的活动标价牌。 钟旭在穆加贝超市打工,有一天遇…

盘点几种数据库的分页SQL的写法(转)

Data序列——盘点几种数据库的分页SQL的写法http://www.cnblogs.com/fireasy/archive/2013/04/10/3013088.html 转载于:https://www.cnblogs.com/wangjunwei/p/4522834.html

dnslog盲注

dnslog盲注dnslog注入原理DNSlog工具什么情况下使用dnslog注入&#xff1f;Mysql DNSlog原理图DNSlog盲注利用条件DNSlog盲注操作方式实战演练查询当前数据库名&#xff1a;查询当前数据库的第一个表名&#xff1a;查询第users表一个列名&#xff1a;查询users表的username列的…

Python在cmd中配置虚拟环境ERROR: Command errored out with exit status 1:

粉丝求助: 解决办法: 具体步骤: 1.查看Python版本 2.Pythonlibs 中找到对应版本的whl文件,cp37代表3.7版本,win32代表Windows系统32位机,根据自己的电脑位数选择。

java sqlserver ssl_拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)...

工作准备•一台SQLSERVER 2005/SQLSERVER 2008服务•SQLSERVER jdbc驱动程序•Java开发环境eclipse jdk1.8•java反编译工具JD-Core反编译JDBC分析SQLSERVER客户端与服务器通信原理SQLServerConnection.class1、经过反编译分析SQLServerConnection.class文件我们可以看到登录时…

1-9其他数据库注入

文章目录 数据库注入access数据库判断access数据库常用函数查询语句构造联合查询布尔型盲注 mssql数据库mssql数据库判断环境---靶机-2k3_sp2常用函数查询语句构造联合查询报错注入布尔型盲注 数据库注入 access数据库 判断access数据库 根据url的后缀。ASP为后缀名…

tp框架 db::name_玩! 框架:为什么我会爱上它

tp框架 db::name前一段时间&#xff0c;我是房地美&#xff0c;房地美&#xff0c;Foreclosure.com和HUD等公司在房地产市场上进行一些大型部署的技术负责人。 我们运行的是您可能熟悉的传统企业Java堆栈-Spring &#xff0c; Hibernate &#xff0c;Solr等。花了几年时间&…

自动化专业向往硬件方面靠,有什么好的建议?

我的建议是: 有能力考研就先考研,考不上可以选择就业,学历还是很重要的,门槛。自动化可以找一些相关的知名企业,按照他们的招聘要求要求自己,往这个方法发展,垂直领域研究很深,你就是大佬和专家。 有个帖子讲的挺全的,虽然是文章:自动化人生 下面是理论内容,我直接…

java 内存数据库 sql_ssm+redis +Maven用于内存数据库 (No Sql)入门demo

最近一直是以自学的状态&#xff0c;想把自己学习到的知识分享给大家 &#xff0c;也是好久没有写博客了。废话不多说 &#xff0c;直接上代码。本次项目是 用maven 管理的.开发工具 eclipse在pom.xml文件中&#xff0c;中关于redis的配置&#xff1a;org.springframework.data…

Fitness - 05.23

倒计时222天 运动40分钟&#xff0c;共计8组&#xff0c;4.2公里。拉伸10分钟。 每组跑步3分钟&#xff08;6.5KM/h&#xff09;&#xff0c;走路2分钟&#xff08;5.5KM/h&#xff09;。 终于赶在姨妈前完成第3周的跑步训练了&#xff0c;可喜可贺~~ 下周预计要休息了orz... 祈…

Linux下编译安装以及配置PHP环境

安装准备 依次执行下面命令,不存在的就搜差不多的就行,下面安装的都是后面安装环境可能需要用上的依赖,不管37是不是21,复制粘贴就是了 Ubuntu安装: sudo apt-get update sudo apt-get install gcc autoconf openssl libssl-dev curl libcurl4-gnutls-de…

开发SPI时不要犯这个错误

您的大多数代码都是私有的&#xff0c;内部的&#xff0c;专有的&#xff0c;并且永远不会公开。 在这种情况下&#xff0c;您可以放轻松–您可以重构所有错误&#xff0c;包括那些可能导致API更改中断的错误。 但是&#xff0c;如果要维护公共API&#xff0c;则不是这种情况。…

有什么好一点的方法读jdk源码吗?

建议是: 1:找相关的书在看相关源码时应该对程序有整体了解,比如看虚拟机时至少要知道:垃圾回收算法,Java内存布局,class文件格式,加载连接的过程...很多人看源码一点头绪都没有,就是因为不了解对应的模块是干嘛的(比如Ja

给女朋友道歉的java代码_跟女朋友道歉的话,高情商的哄人句子

女朋友生气了&#xff0c;而且很严重。在这种情况下&#xff0c;不知道做什么挽回她。第一诚实的道歉可以缓和彼此紧张的气氛。重要的是&#xff0c;道歉完就需要说一些话语去哄她&#xff0c;至于怎么哄又是一个技术性的问题了&#xff0c;下面一起来看看跟女朋友道歉的话,高情…

使用Myeclipse完成Hibernate的逆向工程

Hibernate的开发流程一般有两种&#xff1a; 1、由Domain object > mapping > db 2、由db开始&#xff0c;用工具生成生成mapping 和Domain object。 在实际的开发过程中&#xff0c;涉及的表太多了&#xff0c;一个一个的写java实体类很费事费时的。Myeclipse提供了一个…

面试用涉及到的jvm常见的面试题(一)

什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…