买卖股票的最佳时机

题目链接

买卖股票的最佳时机

题目描述

买卖股票的最佳时机_第1张图片

注意点

  • 0 <= prices[i] <= 10000
  • 不能在买入前卖出股票

解答思路

  • 因为只能在买入股票后才能卖出股票,所以在任意一天,需要找到前面几天当中股票价格最低的一天(也就是买入股票的最佳时机),观察规律只需要一个变量preMin存储股票的最低价格即可,其会随着天数的遍历更新
  • 对于任意一天,该天卖出股票的价格减去前几天股票最低价格即是当天卖出股票的最大收益,将其与之前的最大收益进行比较更新,不断遍历即可推出买卖股票的最佳时机

代码

class Solution {
    public int maxProfit(int[] prices) {
        if (prices.length == 0) {
            return 0;
        }
        int res = 0, preMin = prices[0];
        for (int i = 0; i < prices.length; i++) {
            res = Math.max(res, prices[i] - preMin);
            preMin = Math.min(preMin, prices[i]);
        }
        return res;
    }
}

关键点

你可能感兴趣的:(算法TOP100,leetcode,算法,数据结构)