了解股票的都知道,只需要选择股票最低价格那天购入,在股票价格与最低价差值最大时卖出即可获取最大收益,总之本题只需要维护两个变量即可,minPrice和maxProfit,收益 = prices[i] - minPrice,直接用代码描述如下
class Solution {
public int maxProfit(int[] prices) {
//股票最低价格
int minPrice = Integer.MAX_VALUE;
//最大收益
int maxProfit = 0;
for (int i = 0; i < prices.length; i++) {
// 计算在最低价那天购入至今天能获取的收益
int currentProfit = prices[i] - minPrice;
// 如果获取的收益小于零说明今天的股票价格更低
if (currentProfit < 0) {
// 把第i天作为股票最低价的那天
minPrice = prices[i];
} else if (currentProfit > maxProfit) { // 维护一个最大收益变量
maxProfit = currentProfit;
}
}
return maxProfit;
}
}
题目链接:题单 - 力扣(LeetCode)全球极客挚爱的技术成长平台