Cracking the LeetCode . Best Time to Buy and Sell Stock II

WBOY
Release: 2024-08-05 21:42:12
Original
329 people have browsed it

In my ongoing quest to sharpen my LeetCode skills, I tackled the "Best Time to Buy and Sell Stock II" problem. This challenge is a follow-up to the classic "Best Time to Buy and Sell Stock II" problem (LeetCode 121) but with a crucial difference: *you can execute multiple transactions to maximize profit.
*

A Visual Approach

Before diving into code, I found it incredibly helpful to visualize the problem on a whiteboard. This allowed me to break down the problem into smaller, more manageable steps.

Cracking the LeetCode . Best Time to Buy and Sell Stock II

The Greedy Approach

Given the flexibility to make unlimited transactions, a greedy approach seemed promising. The core idea is simple: whenever the price of a stock increases compared to the previous day, we consider it a potential profit opportunity. By adding up all these price differences, we effectively calculate the maximum profit.

Python Implementation

Here's the Python code that implements this greedy strategy:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        profit = 0

        for i in range(1, len(prices)):
            if prices[i] > prices[i-1]:
                profit+=prices[i] - prices[i-1]

        return profit

Copy after login

JavaScript Implementation

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    var profit = 0;
    for (var i = 1; i < prices.length; i++)
    {
    if(prices[i] > prices[i-1])
    {
        profit += Number(prices[i] - prices[i-1])
    }
    }

    return profit
};
Copy after login

Time and Space Complexity

  • The time complexity of this approach is O(N) where N = length of array.
  • The space complexity is N(1) as we are comparing in place.

The above is the detailed content of Cracking the LeetCode . Best Time to Buy and Sell Stock II. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template