leecode 121 122 买卖股票的最佳时机

买卖股票的最佳时机
题目
在这里插入图片描述
解题思路如下

在这里插入图片描述

int maxProfit(int* prices, int pricesSize){
        int minprice, maxprofit = 0;
    int i = 0;
    if(pricesSize > 0 ) {
        minprice = prices[i];
    }
    for(i = 0; i < pricesSize; i++) {
        if(prices[i] < minprice) {
            minprice = prices[i];
        }
        if(prices[i] - minprice > maxpro) {
            maxprofit = prices[i] - minprice;
        }
    }
    return maxprofit;
}

在这里插入图片描述
在这里插入图片描述
如图,就是BC之差加上DE之差
首先找极小值,然后找到相邻的极大值,然后在找下一个极小值,然后找相邻的极大值

int maxProfit(int* prices, int pricesSize){
    int  maxpro = 0;
    int i = 0;
    while (i < pricesSize - 1) {
        //极小值
      while (i < pricesSize - 1 && prices[i] >= prices[i + 1]) {
           i++;
      }
        minprice = prices[i];
        //极大值
        while (i < pricesSize - 1 && prices[i] <= prices[i + 1]) {
          i++;
        }
     maxpro += (prices[i] - minprice);
   }
   
    return maxpro;
}
发布了34 篇原创文章 · 获赞 4 · 访问量 728

猜你喜欢

转载自blog.csdn.net/weixin_44824650/article/details/102757593