188. Best Time to Buy and Sell Stock IV (Array; DP)
Say you have an array for which the ith element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete at most k transactions.
Note:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
思路:用状态存储至当前日为止第jth buy/sell的最大利润。到了第二天,我们可以按j从大到小(因为j大的新状态依赖于之前j小的状态),修改这个状态。
class Solution {
public:
    int maxProfit(int k, vector<int>& prices) {
        int dates = prices.size();
        if(dates <=  || k == ) return ;
        if (k >= prices.size()) return maxProfit2(prices); //unlimited transaction
        vector<int> release(k,); //sell stock
        vector<int> hold(k,INT_MIN); //buy stock
        for(int i = ; i < dates; i++){
            for(int j = k-; j > ; j--){
                release[j] = max(release[j], hold[j]+prices[i]); //jth sell happen at ith day
                hold[j]=max(hold[j], release[j-]-prices[i]); //jth buy happen at ith day
            }
            release[] = max(release[], hold[]+prices[i]);
            hold[] = max(hold[],-prices[i]);
        }
        return release[k-];
    }
    int maxProfit2(vector<int> &prices) {
        int profit = ;
        for (int i=; i<(int)prices.size()-; i++) {
            if (prices[i+] > prices[i])
                profit += prices[i+] - prices[i];
        }
        return profit;
    }
};
188. Best Time to Buy and Sell Stock IV (Array; DP)的更多相关文章
- 【刷题-LeetCode】188 Best Time to Buy and Sell Stock IV
		
Best Time to Buy and Sell Stock IV Say you have an array for which the i-th element is the price of ...
 - Java for LeetCode 188 Best Time to Buy and Sell Stock IV【HARD】
		
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
 - [LeetCode] 188. Best Time to Buy and Sell Stock IV 买卖股票的最佳时间 IV
		
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
 - 【LeetCode】188. Best Time to Buy and Sell Stock IV 解题报告(Python)
		
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
 - LeetCode 188. Best Time to Buy and Sell Stock IV (stock problem)
		
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
 - 123. Best Time to Buy and Sell Stock III (Array; DP)
		
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
 - 188. Best Time to Buy and Sell Stock IV leetcode解题笔记
		
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
 - 188. Best Time to Buy and Sell Stock IV——LeetCode
		
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
 - 188. Best Time to Buy and Sell Stock IV
		
题目: 链接: 题解: 测试: Reference:
 
随机推荐
- linux 开关机指令
			
shutdown -h now 现在关机 shutdown -h 1 1分钟后电脑关机 su 切换 用户 halt 关机 reboot 重启 sync :保存
 - day09-数据库插入中文报错
			
在向数据库表中插入中文时一直报错 MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以 ...
 - using关键字在C#中的3种用法
			
using 关键字有两个主要用途: (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型. (二).作为语句,用于定义一个范围,在此范围的末尾将释放对象. (一).作为指令 1. ...
 - sse 与 socket 摘录-推送常用技术
			
推送技术常用的集中实现的实现方式 01.短连接轮询 02.长轮询 03.iframe流: 04.WebSocket 05.Server-sent Events(sse)
 - 尚硅谷springboot学习12-profile
			
一个项目对应不同的环境可以会有不同的配置,如开发,测试,生产环境使用不同的端口,这时可以设置profile变换不同的环境 通过spring.profiles.active切换环境 1.多Profile ...
 - 修改 计算机名后,修改SQLserver 注册服务器对象的名称,及登陆名
			
select @@ServerName --查看当前所有数据库服务器名称select * from Sys.SysServers --修改数据库服务器名称sp_dropserver 'old_serv ...
 - 将应用部署到Tomcat根目录下
			
方法一:(最简单直接的方法) 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT文件夹下. 方法二: 删除原webapps/ROOT 目录下的所有文件,修改文 ...
 - jenkins+docker+docker-compose完整发版流程
			
首先搭建jenkins+maven+nexus这一套自动化打包工具,并配置好相应配置,这里就不再赘述了. 其次,搭建好docker集群和私有仓库,以及安装好docker-compose工具,配置好相应 ...
 - 转: jquery.qrcode.js生成二维码插件&转成图片格式
			
原文地址: https://blog.csdn.net/u011127019/article/details/51226104 1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持can ...
 - C# 汉字转拼音(全拼)
			
C# 汉字转拼音(全拼) 很多时候我们需要把汉字转换成拼音,比如姓名.城市名等.网上搜索了一把,把汉字转成拼音的代码很多,但大多都只是把汉字转成了拼音的首字母,比如把“深圳”转成了“sz”.那 ...