连续3天了,惭愧,先坚持下来,保持打卡也是一种胜利,明天一定自己写
int max(int a, int b)
{
return (a>b)?a:b;
}
int min(int a, int b)
{
return (a<b)?a:b;
}
int maxProfit(int* prices, int pricesSize)
{
if ((NULL == prices) || (pricesSize < 2))
return 0;
int min_price = prices[0];
int max_price = prices[pricesSize-1];
int profit_array[pricesSize];
int max_profit_a = 0;
int max_profit_b = 0;
int max_profit = 0;
int i = 0;
for (i = 0; i < pricesSize; i++)
{
max_profit_a = max(max_profit_a, prices[i]-min_price);
min_price = min(min_price, prices[i]);
profit_array[i] = max_profit_a;
}
for (i = pricesSize-1; i>=0; i--)
{
max_profit_b = max(max_profit_b, max_price-prices[i]);
max_price = max(prices[i], max_price);
max_profit = max(max_profit, max_profit_b+profit_array[i]);
}
return max_profit;
}