leetcode 121买卖股票的最佳时机I
从下标1开始,维护两个变量,一个是0~i-1中的最低价格low,一个是当前的最高利润res;先更新最高利润,在更新最低价格;应用了贪心算法的基本思想,总是选择买入价格最低的股票,代码如下:
具有最优子结构:如果当前的价格比之前最低的价格还低,那么更新low变量,每次都计算利润能否更大;
class Solution { public: int maxProfit(vector<int>& prices) { int len=prices.size(); if(len<=1) return 0; int cur_min=prices[0]; int res=0; for(int i=1;i<len;i++){ int cur_profit=prices[i]-cur_min; if(cur_profit>res) res=cur_profit; if(prices[i]<cur_min) cur_min=prices[i]; } return res; } };