博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
买卖股票的最佳时机
阅读量:6856 次
发布时间:2019-06-26

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

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。

注意你不能在买入股票前卖出股票。

示例 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。复制代码
class Solution {    public int maxProfit(int[] prices) {       if( prices.length == 0 ) return 0;       int max = 0;       int cur = prices[ 0 ];        for( int price : prices ){           if( price <= cur ){               cur = price;               continue;           }           max = Math.max( max ,  price - cur);       }        return max;     }}复制代码

解题思路: 用cur变量记录遍历时候的最小值 , 如果当前值比cur值大,则更新最大值 ,如果当前值比cur值,则更新cur值。

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

你可能感兴趣的文章
【多媒体封装格式详解】--- AAC ADTS格式分析
查看>>
联想IDEAPAD 320C-15笔记本显卡驱动问题
查看>>
ES6简介
查看>>
UWP FillRowViewPanel
查看>>
目前的.NET(C#)世界里,主流的ORM框架
查看>>
Java 基础知识点
查看>>
Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法...
查看>>
vimperator
查看>>
(原創) 如何使用boost::array? (C/C++) (template) (boost)
查看>>
Oracle for Windows 相关下载地址
查看>>
电子书下载:Microsoft Silverlight 4 Business Application Development: Beginners Guide
查看>>
.Net下RabbitMQ的使用(2) -- 发送接收消息
查看>>
2009年云数据库的开发和应用前景(转载)
查看>>
Some key terms of Data Mining
查看>>
咏南中间件更新日志
查看>>
9-1让我想起了学生时代~~
查看>>
谷歌用户体验设计准则
查看>>
LaTeX中的数学公式
查看>>
计算二重定积分
查看>>
asp.net Web项目中c#读取域用户名的方法
查看>>