int maxcmp(int a, int b) { return (a >= b) ? a : b; }
/* max subarray problem by using Kadane's Algorithm
*/
int maxProfit(int *prices, int pricesSize)
{
/* maxCur: current maximum
* maxSoFar: found maximum for subarray so far
*/
int maxCur = 0, maxSoFar = 0;
for (int i = 1; i < pricesSize; i++)
{
maxCur = maxcmp(0, maxCur + prices[i] - prices[i - 1]);
maxSoFar = maxcmp(maxSoFar, maxCur);
}
return maxSoFar;
}