LeetCode - Best Time to Buy and Sell Stock

Say you have an array for which the ith element is the price of a given stock on day i.
If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the stock), design an algorithm to find the maximum profit.
Note that you cannot sell a stock before you buy one.
Example 1:
Input: [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.
             Not 7-1 = 6, as selling price needs to be larger than buying price.
Example 2:
Input: [7,6,4,3,1]
Output: 0
Explanation: In this case, no transaction is done, i.e. max profit = 0.
Java Solution :
class Solution {
    public int maxProfit(int[] prices) {
        int minPrice = Integer.MAX_VALUE;
        int maxProfit = 0;
        
        for(int i =0 ; i < prices.length ; i++){
            if(prices[i] < minPrice)
                minPrice = prices[i];
            else if(prices[i]-minPrice > maxProfit)
                maxProfit = prices[i] - minPrice;
        }
        return maxProfit;
    }
}

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

Other Solution :

class Solution {
    public int maxProfit(int[] prices) {
        int maxProfit = 0;
        for(int i =0 ; i < prices.length ; i++){
            for(int j = i+1; j < prices.length ; j++){
                maxProfit = Math.max(maxProfit,prices[j]-prices[i]);
            }
        }
        return maxProfit;
    }
}

Time Complexity : O(n*n)
where n is the length of input array length.
Space Complexity : O(1)


1 comment:

  1. Casino - Bracket betting guide for your chance to win
    The Casino 바카라 사이트 is a unique casino that has been around for over a decade. It has wooricasinos.info managed to offer great games such as herzamanindir.com/ Blackjack, febcasino.com Roulette and Video Poker,

    ReplyDelete

Featured Post

H1B Visa Stamping at US Consulate

  H1B Visa Stamping at US Consulate If you are outside of the US, you need to apply for US Visa at a US Consulate or a US Embassy and get H1...