Leetcode - 121. 买卖股票的最佳时机
解题思路参考代码中的注释:
class Solution {
public int maxProfit(int[] prices) {
int length = prices.length;
// 当前找到的价格的最小值
int minPrice = prices[0];
// 当前找到的最大收益
int maxProfit = 0;
// 从第二个元素开始遍历数组
for (int i = 1; i < length; i++) {
// 如果当前价格比历史最低价格还低,则更新minPrice
if (prices[i] <= minPrice) {
minPrice = prices[i];
// 否则判断在此时的卖出的收益是否大于已发现的最大收益,如果是,则更新maxProfit
} else {
maxProfit = Math.max(maxProfit, prices[i] - minPrice);
}
}
return maxProfit;
}
}
查看3道真题和解析