leetcode 121:买卖股票的最佳时机

这个题相对简单

方法一:直接使用暴力解决方式即可解决,时间复杂度是O(n*n)

int maxProfit(std::vector<int>&prices){
    int len=prices.size();
    int max=0;
    for(int i=0;i<len-1;i++){
        for(int j=i+1;j<len;j++)
            if(prices[j]-prices[i]>max) 
                max=prices[j]-prices[i];  
    }
    return max;
}

方法二:时间复杂度为O(n)的方式

int maxProfit(std::vector<int>&prices){
    int len=prices.size();
    int max=0;
    if(len==0)return 0;
    int min=prices[0];
    for(int i=0;i<len;i++){
        if(prices[i]-min>max) 
              max=prices[i]-min;
        if(prices[i]<min)min=prices[i]; 
    }
    return max;
}

猜你喜欢

转载自blog.csdn.net/u013263891/article/details/82961663
今日推荐