TheAlgorithms-C/leetcode/src/121.c

28 lines
820 B
C
Raw Normal View History

int maxProfit(int* prices, int pricesSize){
/* If there is only only one day, profit cannot be made
*/
if(pricesSize <= 1) {
return 0;
}
int min_element = prices[0];
int max_difference = prices[1] - min_element;
for(int i = 0; i < pricesSize; i++) {
/* whenever maximum profit can be made, we sell the stock.
so we change the maximum difference
*/
if(prices[i] - min_element > max_difference) {
max_difference = prices[i] - min_element;
}
/* if a cheaper stock is available, we make that the minimum element
*/
if(min_element > prices[i]) {
min_element = prices[i];
}
}
/* return 0 if max_difference is less than zero, incase there is no way of making profits
*/
return (max_difference < 0)? 0 : max_difference;
}