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.

解题思路:

本题目是《算法导论》 4.1 节 给出的股票问题的原题,可以转化为最大子数组的问题,书本上给出的是分治的做法,练习4.1-5给出了线性时间的算法。

Java for LeetCode 053 Maximum Subarray实现了相应的解法,如果不转化为最大子数组问题,解法如下:

一次遍历,每次找到最小的Buy点即可,JAVA实现如下:

    public int maxProfit(int[] prices) {
int buy = 0;
int profit = 0;
for (int i = 0; i < prices.length; ++i) {
if (prices[buy] > prices[i])
buy = i;
profit = Math.max(profit, prices[i] - prices[buy]);
}
return profit;
}

最新文章

  1. iOS之UICollectionView详解
  2. 嵌入式Linux驱动学习之路(二十三)NAND FLASH驱动程序
  3. 如何用java自带的工具生成证书
  4. 受限玻尔兹曼机(RBM)学习笔记(四)对数似然函数
  5. 转:Linux集群-----HA浅谈
  6. HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置
  7. POJ 3268 Silver Cow Party (双向dijkstra)
  8. (四)CSS选择器和派生选择器
  9. GitHub Windows客户端部署
  10. 三角网格(Triangle Mesh)的理解
  11. matlab操作之--读取指定文件夹下的“指定格式”文件
  12. C51程序优化
  13. JVM-ClassLoader(转)
  14. 用C#绘图实现动画出现卡屏(运行慢)问题的解决办法
  15. jQuery中delegate与on的用法与区别
  16. google gflag使用方法举例
  17. fastjson 的使用总结
  18. node npm --save,不同JS解析器的内置全局变量,PROMISE,CONST---ES6
  19. C#+EntityFramework编程方式详细之Database First
  20. 一起学libcef--搭建自己的libcef运行环境(Win32程序,错误C2220解决方案)

热门文章

  1. Hadoop部署启动异常问题排查
  2. (五)解决jQuery和其它库的冲突
  3. Linux下MySQL定时按日期备份数据
  4. we are experimenting with a new init system and it is fun
  5. Linux 查看.so中导出函数
  6. java sqlite配置和自定义函数
  7. Chrome自带恐龙小游戏的源码研究(七)
  8. u-boot 学习系列 1 - SPL
  9. sql 注入 与解决
  10. Kindeditor上传图片回显不出来