博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 每日算法一题*****#121. 买卖股票的最佳时机
阅读量:6192 次
发布时间:2019-06-21

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

hot3.png

Question:

给定一个数组,它的第 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。

 

Answer:

class Solution {    public int maxProfit(int[] prices) {        int result = 0;        if (prices.length > 0) {            for (int i = 0; i < prices.length; i++) {                for (int j = i + 1; j < prices.length; j++) {                    int tmp = prices[j] - prices[i];                    if ( tmp > result) {                        result = tmp;                    }                }            }        }        return result;    }}

运行速度最快解法参考:

class Solution {    public int maxProfit(int[] prices) {        if(prices.length<2)            return 0;        int min=prices[0];        int max=0;        for(int i=0;i
prices[i]) min=prices[i]; max=Math.max(max,prices[i]-min); } return max; }}

 

转载于:https://my.oschina.net/u/3959266/blog/2222091

你可能感兴趣的文章
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>
php上传$_FILES 无法取值
查看>>
python 输出当前行号
查看>>
vue21 slot占位
查看>>
12C -- 配置Application Continuity
查看>>
Redis从入门到精通:初级篇(转)
查看>>
刨根问底 | Elasticsearch 5.X集群多节点角色配置深入详解【转】
查看>>
python怎么写可读性好的面向过程的长篇代码?
查看>>
怎样轻松将SD卡照片数据恢复
查看>>
Gsoap编译
查看>>
Linux下函数调用堆栈帧的详细解释【转】
查看>>
洛谷P2765 魔术球问题(贪心 最大流)
查看>>
SQL Server2016 配置管理器
查看>>
并发下线程池的最佳数量计算
查看>>
@EnableAsync和@Async开始异步任务支持
查看>>
匿名内部类和内部类中的this
查看>>
[Python设计模式] 第27章 正则表达式——解释器模式
查看>>
ROS设备的性价比图
查看>>
日志分析方法
查看>>