你只能買入一次並賣出一次,求最大的利潤是多少
定一個點(for loop),然後另一個 for 去跑後面的,不斷紀錄最小值。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size();
int maxprofit = 0; // 最大獲利
int minprice = INT_MAX; // 過去紀錄的最低價格
for(int i=0;i<n;i++){
maxprofit = max(maxprofit, (prices[i]-minprice)); // 更新最大差距
minprice = min(minprice, prices[i]); // 更新最低點
}
return maxprofit;
}
};