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

本文共 802 字,大约阅读时间需要 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 == null || prices.length == 0)        {            return 0;        }        int[] dp = new int[prices.length];        int minPrice = prices[0];        for(int i = 1; i < prices.length; i++)        {            minPrice = Math.min(minPrice, prices[i]);            dp[i] = Math.max(dp[i - 1], prices[i] - minPrice);//只需记住当前的最小值即可        }        return dp[prices.length - 1];    }}

 

转载于:https://www.cnblogs.com/yanhowever/p/10758861.html

你可能感兴趣的文章
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
测试计划
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
jQuery 自定义函数
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
第一阶段冲刺06
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
HDU 4635 Strongly connected
查看>>