考察的知识点:贪心;

解答方法分析:

  1. 初始化最低买入价格为第一天价格 prices[0],最大利润为 0。
  2. 从第二天开始遍历价格列表 prices:如果当前价格 prices[i] 大于最低买入价格,计算当前价格与最低买入价格的差值,如果差值大于最大利润,更新最大利润。否则,更新最低买入价格为当前价格。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param prices int整型vector
     * @return int整型
     */
    int max_profit(vector<int>& prices) {
        int minPrice = prices[0];
        int maxProfit = 0;
        for (int i = 1; i < prices.size(); i++) {
            if (prices[i] < minPrice) {
                minPrice = prices[i];
            } else {
                int profit = prices[i] - minPrice;
                if (profit > maxProfit) {
                    maxProfit = profit;
                }
            }
        }
        return maxProfit;
    }
};