NowCode
题目
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
示例 1:
输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
解题思路
class Solution {
public int maxProfit(int[] prices
) {
if(prices
.length
== 0)
return 0;
int maxV
= 0;
int minV
= prices
[0];
for(int i
= 0; i
< prices
.length
; i
++) {
minV
= Math
.min(minV
, prices
[i
]);
maxV
= Math
.max(prices
[i
] - minV
, maxV
);
}
return maxV
;
}
}
瑞 新
认证博客专家
分布式
Java
架构
求职中 • Java全栈养成计划公众号 • 让我遇见相似的灵魂回复领取:竞赛 书籍 项目 面试左手代码,右手吉他,这就是天下:如果有一天我遇见相似的灵魂 那它肯定是步履艰难 不被理解 喜黑怕光的。如果可以的话 让我触摸一下吧 它也一样孤独得太久。 不一样的文艺青年,不一样的程序猿。