DEV Community

loading...

LeetCode 121. Best Time to Buy and Sell Stock (javascript solution)

codingpineapple
・1 min read

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.

Solution:

Time Complexity : O(n)
Space Complexity: O(1)

var maxProfit = function(prices) {
    let profit = 0
    let min = prices[0]
    for(let i = 1; i < prices.length; i++){
        // The day we should buy at
        min = Math.min(min, prices[i-1])
        // Check if selling at the current day gives us the most profit
        profit = Math.max(prices[i]-min, profit)
    }
    return profit
};
Enter fullscreen mode Exit fullscreen mode

Discussion (0)