diff --git a/Optimization Algorithms/Best Time To Buy and Sell/Program.c b/Optimization Algorithms/Best Time To Buy and Sell/Program.c deleted file mode 100644 index 195c5483..00000000 --- a/Optimization Algorithms/Best Time To Buy and Sell/Program.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -using namespace std; - -int maxProfit(vector &prices) { - int n = prices.size(); - int profit= 0; - int bestBuy=prices[0]; - - // Explore all possible ways to buy and sell stock - for (int i = 1; i < n; i++) { - if(prices[i]>bestBuy) - { - profit = max(profit, prices[i] - bestBuy); - } - } - return profit; -} - -int main() { - vector prices = {7, 4, 1, 3, 6, 9, 20}; - cout << maxProfit(prices) << endl; - return 0; -} \ No newline at end of file diff --git a/Optimization Algorithms/Best Time To Buy and Sell/Programbest.c b/Optimization Algorithms/Best Time To Buy and Sell/Programbest.c new file mode 100644 index 00000000..14584b41 --- /dev/null +++ b/Optimization Algorithms/Best Time To Buy and Sell/Programbest.c @@ -0,0 +1,33 @@ +#include + +int maxProfit(int* prices, int pricesSize) { + if (pricesSize <= 1) return 0; // No profit can be made + + int minPrice = prices[0]; // Initialize minPrice to the first price + int maxProfit = 0; // Initialize maxProfit to 0 + + for (int i = 1; i < pricesSize; i++) { + // Update minPrice if the current price is lower + if (prices[i] < minPrice) { + minPrice = prices[i]; + } else { + // Calculate profit if we sell at the current price + int profit = prices[i] - minPrice; + if (profit > maxProfit) { + maxProfit = profit; // Update maxProfit if the current profit is higher + } + } + } + + return maxProfit; // Return the maximum profit found +} + +int main() { + int prices[] = {7, 1, 5, 3, 6, 4}; // Example prices + int size = sizeof(prices) / sizeof(prices[0]); + + int result = maxProfit(prices, size); + printf("The maximum profit is: %d\n", result); + + return 0; +} \ No newline at end of file