力扣(LeetCode)121. 买卖股票的最佳时机(C语言)

一、环境说明

  1. 本文是 LeetCode 121题 : 买卖股票的最佳时机,使用c语言实现。
  2. 模拟。
  3. 测试环境:Visual Studio 2019。

二、代码展示

int maxProfit(int* prices, int pricesSize){
    int minprice = INT_MAX,maxprofit = 0;//维护最低价格和最大利润
    for(int i = 0;i<pricesSize;i++){//遍历prices
        if(minprice>prices[i]){//维护最低价格
            minprice = prices[i];
        }else if(maxprofit<prices[i]-minprice){//维护最大利润
            maxprofit = prices[i]-minprice;
        }
    }
    return maxprofit;
}

三、思路分析

  • 股票题有一系列动态规划理论,这是股票入门题!
  • 简单模拟题。
  1. 用一个 m i n p r i c e minprice minprice维护最低价格, m a x p r o f i t maxprofit maxprofit维护最大利润,当每次遍历,只维护 m i n p r i c e minprice minprice m a x p r o f i t maxprofit maxprofit二者之一。
  2. 如果维护了 m i n p r i c e minprice minprice,从 m i n p r i c e minprice minprice出发,当前利润肯定是 0 ; 0; 0;如果维护了 m a x p r o f i t maxprofit maxprofit,当前价格 p r i c e s [ i ] prices[i] prices[i]一定比 m i n p r i c e minprice minprice高。

四、代码分析

  • 理解思路很重要!
  • 博主欢迎读者在评论区留言,作为日更博主,看到就会回复的。

五、AC

力扣(LeetCode)121. 买卖股票的最佳时机(C语言)_第1张图片

六、复杂度分析

  1. 时间复杂度: O ( n ) O(n) O(n) , n n n p r i c e s prices prices数组的大小。一次遍历 p r i c e s prices prices的时间复杂度是 O ( n ) O(n) O(n)
  2. 空间复杂度: O ( 1 ) O(1) O(1),除了若干变量使用的常量空间,没有额外使用线性空间。

你可能感兴趣的:(小白leetcode,leetcode,c语言,算法)