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;
    }
};

 

posted @ 2019-04-09 14:47  Joel_Wang  阅读(180)  评论(0编辑  收藏  举报