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