LeetCode Best Time to Buy and Sell Stock JAVA
来源:互联网 发布:网络直播平台 论文 编辑:程序博客网 时间:2024/06/06 14:13
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.
题目的意思大概就是有一组数组,代表每天的股票的价格,只能买卖一次的情况下,求最大的利润值。(需要注意的是,最大利润是高点减去低点,但是低点出现的时候要在高点之前)
开始想到了这种双for循环的方式,循环遍历找最大利润值,代码如下:
public class Solution { public int maxProfit(int[] prices) { int temp = 0; int result = 0; for (int i = 0; i < prices.length; i++){ for (int j = i; j<prices.length;j++){ temp = prices[j] - prices[i]; result = temp > result ? temp : result; } } return result; }}设置几个入参试了一下,问题不大,但是提交的时候说超时了。算法复杂度比较高了。
后来参考网上别人的思路。觉得真是豁然开朗啊。我们直接把利润作为判断,但是利润判断的时候,需要确保利润是高点减去低点,最重要的是要控制高点出现的时间在低点以后。这样想的话,思路就比较清晰。
public class Solution { public int maxProfit(int[] prices) { int minNumber = Integer.MAX_VALUE; int profit = 0; for(int i = 0; i < prices.length; i++){ profit = Math.max(profit,prices[i] - minNumber); minNumber = Math.min(minNumber , prices[i]); } return profit; }}真是惭愧啊。别人几句话就能搞定。
0 0
- [Leetcode] Best Time to Buy and Sell Stock (Java)
- [Leetcode] Best Time to Buy and Sell Stock II (Java)
- [Leetcode] Best Time to Buy and Sell Stock III (Java)
- Leetcode-Best Time to Buy and Sell Stock -java
- leetcode java Best Time to Buy and Sell Stock
- LeetCode(121) Best Time to Buy and Sell Stock (Java)
- Best Time to Buy and Sell Stock IV Leetcode Java
- [LeetCode][Java] Best Time to Buy and Sell Stock
- [LeetCode][Java] Best Time to Buy and Sell Stock IV
- [LeetCOde][Java] Best Time to Buy and Sell Stock III
- leetcode:Best Time to Buy and Sell Stock 【Java】
- leetcode:Best Time to Buy and Sell Stock II 【Java】
- LeetCode 121 -Best Time to Buy and Sell Stock ( JAVA )
- LeetCode Best Time to Buy and Sell Stock JAVA
- leetcode-java-121. Best Time to Buy and Sell Stock
- [LeetCode] Best Time to Buy and Sell Stock(Java)
- 【leetcode】121. Best Time to Buy and Sell Stock【java】
- LeetCode-121. Best Time to Buy and Sell Stock (Java)
- PowerDesigner的使用安装和数据库创建
- Java应用中通过JNI嵌入c或者汇编代码来抓取qtrace的步骤
- 在OpenCV环境下写的灰度图像二维傅里叶换,幅值计算,频谱平移和将数值归一化到0到255区间的四个函数
- lua 实现的几个简单的排序算法
- android button 点击效果实现
- LeetCode Best Time to Buy and Sell Stock JAVA
- Android Gradle基础实践
- Android中WebView与JS交互
- html里name和id的区别
- 蓝桥杯—— 算法训练 数位分离
- mysql运维-二进制日志BINARY LOG清理
- Java 通过JNative调用已经编写好的DLL
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
- mybatis的#{}和${}的区别以及order by注入问题