链接
c
感觉这道题的思路和53.Maximum Subarray有点类似,同样是找最大和最小,但是注意最大后出现,最小先出现,所以直接找的是差的最大。
int maxProfit(int* prices, int pricesSize){
int max = 0;
int i;
if(pricesSize != 0)
{
int tem = prices[0];
int min = prices[0];
for(i = 0; i < pricesSize; i++)
{
tem = prices[i] - min;
if(tem > max)
{
max = tem;
}
if(prices[i] < min)
{
min = prices[i];
}
}
return max;
}
else
{
return 0;
}
}
python
float(‘inf’)表示正无穷
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if not prices:
return 0
min_price = float('inf')
max_profit = 0
for price in prices:
max_profit = max(max_profit, price - min_price)
if price < min_price:
min_price = price
return max_profit