DSA Problems/🪟Sliding Window

Best Time to Buy and Sell Stock

ArrayDynamic Programming

Problem Statement

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 and a single day to sell (the selling day must be after the buying day).

Return the maximum profit you can achieve. If no profit is possible, return 0.

Approach

Track the minimum price seen so far and calculate the profit at each step. Keep updating the maximum profit.

Complexity Analysis

MetricValue
TimeO(n)
SpaceO(1)

Examples

Example 1

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

Example 2

Input: prices = [7,6,4,3,1] Output: 0 Explanation: No profitable transaction possible

Constraints

  • 1 <= prices.length <= 10^5
  • 0 <= prices[i] <= 10^4
Loading...
Sign in to run your code...

Asked by companies:

AmazonFacebookMicrosoftGoogleGoldman Sachs