【剑指OFFER】63. 股票的最大利润
发布日期:2021-06-29 19:47:21
浏览次数:2
分类:技术文章
本文共 721 字,大约阅读时间需要 2 分钟。
题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
示例 1:
输入: [7,1,5,3,6,4]
输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:
输入: [7,6,4,3,1]
输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。限制:
0 <= 数组长度 <= 10^5
答案:
class Solution { public int maxProfit(int[] prices) { //用两个变量存储初始状态,今天没持有dp0,今天持有dp1 //进行数组长度的天数 //今天没持有=max(昨天就没持有,昨天有持有今天卖了) //今天持有=max(昨天持有,昨天没持有今天持有) //取最后一天没持有(卖出) int dp0 = 0, dp1 = Integer.MIN_VALUE; for(int i = 0; i < prices.length; i++){ dp0 = Math.max(dp0, dp1 + prices[i]); dp1 = Math.max(dp1, -prices[i]);//因为都是负的,所以取最大就是取花钱最少 } return dp0; }}
转载地址:https://darkness.blog.csdn.net/article/details/116236352 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年05月03日 06时29分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
css cursor属性整理
2019-04-30
如何用element-ui的table做一个模糊搜索功能
2019-04-30
windows环境下,在node学习时使用nodemon 报错
2019-04-30
VScode自动生成项目目录文件结构的方法
2019-04-30
如何避免CSS :before、:after 中文乱码
2019-04-30
观察者模式
2019-04-30
1024. 视频拼接
2019-04-30
北漂码农的现状
2019-04-30
前端技巧必备:重置样式表reset.css
2019-04-30
css技巧--给选中的tab加下划线
2019-04-30
css技巧---位置中间的竖线|垂直居中
2019-04-30
css技巧---电子表体字体引入
2019-04-30
随笔---如何启动Redis
2019-04-30
css技巧---menu菜单加new
2019-04-30
freemarker模板当标签内的元素为空报错解决方案
2019-04-30
如何解决中文乱码问题
2019-04-30
关于如何彻底卸载SQL SERVER2005 2008
2019-04-30