** * https://oj.leetcode.com/problems/best-time-to-buy-and-sell-stock/ * Say you have an array for which the ith element is the price of a given stock on day i. * If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), * design an algorithm to find the maximum profit. * 如果输入为[6, 9, 12, 4, 11, 1, 9] * 则应该在1时买入,在9时候卖出 **/ class Solution { public: int maxProfit(vector<int> &prices) { int i = 0; int size = prices.size(); if(size == 0){ return 0; } int min = prices[0]; int profit = 0; for(i = 1; i < size; i++){ if(prices[i] - min > profit){ profit = prices[i] - min; } if(prices[i] < min){ min = prices[i]; } } return profit; } };