<剑指Offer>面试题63: 股票的最大利润

题目描述

  • 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
  • 例如,一只股票在某些时间节点的价格为 {9, 11, 8, 5, 7, 12, 16, 14}
  • 如果我们能在价格为 5 的时候买入并在价格为 16 时卖出,则能收获最大的利润为 11

题目解读

  • 剑指Offer 304
  • LeetCode 121. Best Time to Buy and Sell Stock

代码

class Solution {
public:
    int maxProfit(vector& prices) {
        if(prices.size() < 2){
            return 0;    
        }
        
        int max = 0;
        int min = prices[0];
        
        for(int i=1; i < prices.size(); i++){
            max = prices[i]-min >  max? prices[i]-min : max;
            min = min > prices[i]? prices[i] : min; 
        }
        return max;
    }
};

总结展望

你可能感兴趣的:(<剑指Offer>面试题63: 股票的最大利润)