牛客Top200---买卖股票的最好时机(java)
Posted 小样5411
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客Top200---买卖股票的最好时机(java)相关的知识,希望对你有一定的参考价值。
题目
分析
这题还是比较简单的,它的意思就是要找最大价格和最小价格,也就是在最低点买,最高点抛,我们只要遍历一遍找到最大与最小即可,但是别忘了一种情况,就是股票没有涨,甚至在跌,所以初始化时要注意,如果min=prices[0],max=prices[0],return max-min,赋值第一个元素,那么就没有考虑跌的情况,这也是我第一次写没有考虑的。所以应该换个思路,max记录最大收益,初始max=0,就算一直跌,那么最大收益max也相应不变=0,每次更新最小值,并且用数组每个元素减去最小值,得到的值更新为最大收益,遍历一轮就能得到最大收益。
import java.util.*;
public class Solution {
public int maxProfit (int[] prices) {
// write code here
//最大收益maxIncome,最小价格min,如果一直跌,或者没有涨,maxIncome=0就不变,即没有收益
int maxIncome = 0,min = prices[0];
for(int i = 1 ; i < prices.length ; i++){
if(prices[i] < min){
min = prices[i];//获取最小价格
}else{
maxIncome = Math.max(maxIncome,prices[i]-min);//更新最大收益
}
}
return maxIncome;
}
}
以上是关于牛客Top200---买卖股票的最好时机(java)的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# 面试必刷TOP101:买卖股票的最好时机
leetcode_121——买卖股票的最好时机(java实现)