From e24aeb3a67d29fbd71ca345778c537c986f6d2e7 Mon Sep 17 00:00:00 2001 From: Neha Gupta <78951376+Neha611@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:36:04 +0530 Subject: [PATCH] Create BestTimetoBuyandSellStock.js This problem is one of the most important concepts of Dynamic Programming which is more often asked in interviews. I have provided problem statement , test example , code and explanation of code here. --- .../BestTimetoBuyandSellStock.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Dynamic-Programming/BestTimetoBuyandSellStock.js diff --git a/Dynamic-Programming/BestTimetoBuyandSellStock.js b/Dynamic-Programming/BestTimetoBuyandSellStock.js new file mode 100644 index 0000000000..bb47bb2e9f --- /dev/null +++ b/Dynamic-Programming/BestTimetoBuyandSellStock.js @@ -0,0 +1,49 @@ +/* + Author : Neha611 + github Link:https://github.com/Neha611 + + Problem Description: + You are given an array prices where prices[i] is the price of a given stock on the ith day. + You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock. + Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return 0. + + Example: + Input: prices = [7,1,5,3,6,4] + Output: 5 + Explanation: Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 6-1 = 5. + Note that buying on day 2 and selling on day 1 is not allowed because you must buy before you sell. + + Problem Link: + https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/ +*/ + +/** + * @param {number[]} prices + * @return {number} + */ +var maxProfit = function(prices) { + let buy_day=-1; + let buy=Number.MAX_VALUE; + let sell_day=-1; + let profit=0; + for(let i=0;iprices[buy_day]) + { + /*if the current price of stock is higher than the price it is bought with we can or cannot sell on this day*/ + sell_day=i; + } + if(buy_day