121. Best Time to Buy and Sell Stock(只允许一次交易)

来源:互联网 发布:提供rs485数据电缆价格 编辑:程序博客网 时间:2024/04/29 15:17

算法一(动态规划):


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


算法二(暴力破解):

代码如下:

class Solution {public:    int maxP(vector<int>& prices,int left,int right){        if(left==right)return 0;        int i=left,j=left,max,min;        max=min=prices[left];        for(int k=left;k<=right;++k){            if(min>prices[k]){min=prices[k];i=k;}            if(max<prices[k]){max=prices[k];j=k;}        }        if(i<=j)return max-min;        else{            int val1=maxP(prices,left,j);            int val2=maxP(prices,j+1,i-1);            int val3=maxP(prices,i,right);            int temp=val1>val2?val1:val2;            return (temp>val3?temp:val3);        }    }    int maxProfit(vector<int>& prices) {        if(prices.size()==0)return 0;        return maxP(prices,0,prices.size()-1);    }};




0 0
原创粉丝点击