Best Time to Buy and Sell Stock II LeetCode Solution

Here, We see Best Time to Buy and Sell Stock II Leetcode Solution. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc., with different approaches.

List of all LeetCode Solution

Best Time to Buy and Sell Stock II LeetCode Solution

Best Time to Buy and Sell Stock II LeetCode Solution

Problem Statement

You are given an integer array prices where prices[i] is the price of a given stock on the ith day. On each day, you may decide to buy and/or sell the stock. You can only hold at most one share of the stock at any time. However, you can buy it then immediately sell it on the same day. Find and return the maximum profit you can achieve.

Example 1:
Input: prices = [7,1,5,3,6,4]
Output: 7
Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4.
Then buy on day 4 (price = 3) and sell on day 5 (price = 6), profit = 6-3 = 3.
Total profit is 4 + 3 = 7.

Example 2:
Input: prices = [1,2,3,4,5]
Output: 4
Explanation: Buy on day 1 (price = 1) and sell on day 5 (price = 5), profit = 5-1 = 4.
Total profit is 4.
Example 3:
Input: prices = [7,6,4,3,1]
Output: 0
Explanation: There is no way to make a positive profit, so we never buy the stock to achieve the maximum profit of 0.

Best Time to Buy and Sell Stock II Leetcode Solution C++

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int i=0, profit=0, buy, sell;
        while(i < prices.size()-1){
            while(i < prices.size()-1 && prices[i+1] <= prices[i]){
                i++;
            }
            buy = prices[i];
            while(i < prices.size()-1 && prices[i+1] > prices[i]){
                i++;
            }
            sell = prices[i];
            profit += sell - buy;
        }
        return profit;
    }
};
Code language: C++ (cpp)

Best Time to Buy and Sell Stock II Leetcode Solution Java

class Solution {
    public int maxProfit(int[] prices) {
        int maxprofit = 0;
        for (int i = 1; i < prices.length; i++) {
            if (prices[i] > prices[i - 1])
                maxprofit += prices[i] - prices[i - 1];
        }
        return maxprofit;
    }
}
Code language: Java (java)

Best Time to Buy and Sell Stock II Leetcode Solution JavaScript

var maxProfit = function(prices) {
    let profits = [0]; // base condition
    
    for(let i = 1; i < prices.length; i++) {
        profits[i] = profits[i - 1] + Math.max(0, prices[i] - prices[i - 1])
    }
    
    return profits.pop()
};
Code language: JavaScript (javascript)

Best Time to Buy and Sell Stock II Leetcode Solution Python

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
Code language: Python (python)
Scroll to Top