121 leetcode 买卖股票的最佳时机

mac2024-07-17  48

题目描述: 根据题目描述,该题的意思就是后面一个数减去前面一个数,这些差中,求出最大的差值,即为最大利润; 假设第一个数为最小值,遍历整个数组,当后面的数大于该数时,求出差值,否则重新赋值最小值,最小值是动态的,每次求出差值后也作比较,差值也是动态的; 代码如下:

class Solution { public: int maxProfit(vector<int>& prices) { int dif=0; if(prices.size()<2) return 0; if(prices.size()>=2){ int min=prices[0],i=1; while(i<prices.size()){ if(min>prices[i]) min=prices[i]; else if(prices[i]-min>dif) dif=prices[i]-min; i++;} } return dif; } };
最新回复(0)