Best Time to Buy and Sell Stock I,II,III [leetcode]
Best Time to Buy and Sell Stock I
你只能一个操作:维修preMin拍摄前最少发生值
代码例如以下:
int maxProfit(vector<int> &prices) {
if (prices.size() == 0) return 0;
int profit = 0;
int preMin = prices[0];
for (int i = 1; i < prices.size(); i++)
{
if (prices[i] < preMin) preMin = prices[i];
profit = max(profit, prices[i] - preMin);
}
return profit;
}
Best Time to Buy and Sell Stock II
能无限次操作时:当==>当前价格 > 买入价格的时候,卖出
代码例如以下:
int maxProfit(vector<int> &prices) {
if (prices.size() == 0) return 0;
int profit = 0;
int buy = prices[0];
for (int i = 1; i < prices.size(); i++)
{
if (buy < prices[i])
profit += prices[i] - buy;
buy = prices[i];
}
return profit;
}
Best Time to Buy and Sell Stock III
仅仅能操作两次时:
两次操作不能重叠。能够分成两部分:0...i的最大利润fst 和i...n-1的最大利润snd
代码例如以下:
int maxProfit(vector<int> &prices) {
if (prices.size() == 0) return 0;
int size = prices.size();
vector<int> fst(size);
vector<int> snd(size);
int preMin = prices[0];
for (int i = 1; i < size; i++)
{
if (preMin > prices[i]) preMin = prices[i];
fst[i] = max(fst[i - 1], prices[i] - preMin);
}
int profit = fst[size - 1];
int postMax = prices[size - 1];
for (int i = size - 2; i >= 0; i--)
{
if (postMax < prices[i]) postMax = prices[i];
snd[i] = max(snd[i + 1], postMax - prices[i]);
//update profit
profit = max(profit, snd[i] + fst[i]);
}
return profit;
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
Best Time to Buy and Sell Stock I,II,III [leetcode]的更多相关文章
- [Leetcode][JAVA] Best Time to Buy and Sell Stock I, II, III
Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a gi ...
- LeetCode:Best Time to Buy and Sell Stock I II III
LeetCode:Best Time to Buy and Sell Stock Say you have an array for which the ith element is the pric ...
- Best Time to Buy and Sell Stock I II III
Best Time to Buy and Sell Stock Say you have an array for which the ith element is the price of a gi ...
- leetcode day6 -- String to Integer (atoi) && Best Time to Buy and Sell Stock I II III
1. String to Integer (atoi) Implement atoi to convert a string to an integer. Hint: Carefully con ...
- 解题思路:best time to buy and sell stock i && ii && iii
这三道题都是同一个背景下的变形:给定一个数组,数组里的值表示当日的股票价格,问你如何通过爱情买卖来发家致富? best time to buy and sell stock i: 最多允许买卖一次 b ...
- LeetCode之“动态规划”:Best Time to Buy and Sell Stock I && II && III && IV
Best Time to Buy and Sell Stock I 题目链接 题目要求: Say you have an array for which the ith element is the ...
- [LeetCode] 递推思想的美妙 Best Time to Buy and Sell Stock I, II, III O(n) 解法
题记:在求最大最小值的类似题目中,递推思想的奇妙之处,在于递推过程也就是比较求值的过程,从而做到一次遍历得到结果. LeetCode 上面的这三道题最能展现递推思想的美丽之处了. 题1 Best Ti ...
- Best Time to Buy and Sell Stock I II III IV
一.Best Time to Buy and Sell Stock I Say you have an array for which the ith element is the price of ...
- 123. Best Time to Buy and Sell Stock (三) leetcode解题笔记
123. Best Time to Buy and Sell Stock III Say you have an array for which the ith element is the pric ...
随机推荐
- struts2文件上传限制大小问题
struts2默认文件上传大小为2M,如需改动默认大小,解决方法例如以下: <struts> <constant name="struts.multipart.maxSiz ...
- uva10480(最小割)
传送门:Sabotage 题意:给定多个城市的网络,每个城市之间的通信有花费,要求使得首都和最大城市之间的通信断掉的最小花费.要求输出任意一组砸掉的边. 分析:跑一遍最大流dinic后,根据最小割定理 ...
- TkinterGUI - 初识Tkinter
前言 近期有写一个简单GUI程序的点子,具体写什么就不说了,但一个要求就是有跨平台的功能. 确切的讲,是我希望这个程序写好后能同时在Windows和Linux下运行,而且要方便随时修改. 对于编程语言 ...
- JQuery是继prototype之后又一个优秀的Javascript库
JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Oper ...
- hdu1042(大数模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 在网上找了个大数模板方便以后用得到. #include<iostream> #inc ...
- 前端控件之Jquery datetimepicker的使用总结
效果图 在介绍jquery datetimepicker的使用方法前,我们先来看一下它的实现效果图,这样以便让你更快地了解它是否是你所需要的. 下面我截了四张常用的效果图(截取自http://xdso ...
- SVN更改登录用户(转)
一) 原地址:http://www.ixna.net/articles/2606 //证书缓存 $ svn list https://host.example.com/repos/project Er ...
- 新一代自平衡电动代步工具Solo wheel!
http://m.baidu.com/from=844b/bd_page_type=1/ssid=0/uid=3151E6C0905477A13653132D762BB6FB/pu=sz%401320 ...
- HDU 4790 Just Random 数学
链接:pid=4790">http://acm.hdu.edu.cn/showproblem.php?pid=4790 意:从[a.b]中随机找出一个数字x,从[c.d]中随机找出一个 ...
- Knockout应用开发指南 第八章:简单应用举例(1)
原文:Knockout应用开发指南 第八章:简单应用举例(1) 本章展示的4个例子主要是利用了Knockout的基本语法特性,让大家感受到使用Kncokout的快感. 1 Hello world ...