博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Best Time to Buy and Sell Stock
阅读量:6886 次
发布时间:2019-06-27

本文共 1620 字,大约阅读时间需要 5 分钟。

Question :    

 

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

for example: array[]  = { 2, 5, 3, 8, 9, 4 } , maxProfit = 9 - 2 = 7.

Anwser 1 :       

 

class Solution {public:    int maxProfit(vector
&prices) { // Start typing your C/C++ solution below // DO NOT write int main() function if(prices.size() == 0) return 0; int ret = 0; int len = prices.size(); int maxPrice = prices[len-1]; for(int i = len - 1; i >= 0; i--){ maxPrice = max(prices[i], maxPrice); // maxPrice ret = max(ret, maxPrice - prices[i]); // maxProfit } return ret; }};

注意点:

 

最大利润,应该是先买的最低价与后卖的最高价的差值,因此需要考虑时间先后顺序

 

Anwser 2 :       

 

class Solution {public:    int maxProfit(vector
&prices) { // Start typing your C/C++ solution below // DO NOT write int main() function int maxp = 0; int dp = 0; for(int i = prices.size()-2; i >= 0 ;i--) { if(dp >= 0){ dp += (prices[i+1] - prices[i]); } else { dp = max(0, prices[i+1] - prices[i]); } maxp = max(dp, maxp); } return maxp; }};

说明:

 

1) 此法把两数之间最大差,转化为了求两数组之间最大和

2) dp += (prices[i+1] - prices[i]) 实际上是 dp +=  (prices[i+1] - prices[i])  +  (prices[i] - prices[i-1])  +  (prices[i-1] - prices[i-2]) + ... =  (prices[i] - prices[j])   (i > j)

 

 

参考推荐:

 

 

转载地址:http://qttbl.baihongyu.com/

你可能感兴趣的文章
PHP中利用ICONV转化字符串编码出错【DETECTED AN ILLEGAL CHARAC...
查看>>
display table 标签
查看>>
mysql 日志维护
查看>>
用 LFS 做极简高效的流媒体服务
查看>>
使用七牛云存储解决ios7.1的app部署问题 https
查看>>
云计算,网格计算,分布式计算,集群计算的区别
查看>>
在CentOS 6.5 环境下利用yum搭建LNMP环境
查看>>
Greenplum闰秒故障的分析解决
查看>>
iMatrix平台中组织结构树标签acsTags:tree用法
查看>>
WinForm多线程编程
查看>>
Hyperledger Fabric 客户端开发五
查看>>
spring的参数校验
查看>>
Nginx的URL Rewrite基本指令
查看>>
Properties属性文件操作工具类PropsUtil
查看>>
计算机系统要素 C4
查看>>
Mysql存储引擎
查看>>
每看一次自己写的代码都有一种重写的冲动
查看>>
androidManifest.xml问题
查看>>
升级ubuntu后nginx无法启动
查看>>
inux多线程顺序控制的示例
查看>>