MaxprofitSHaresaleandpurchase

by Avinash Singh

JavaScript

var stockPricesYesterday = [10, 7, 5,8];

/* var max_profit =getMaxProfit(stockPricesYesterday); */
var maxt_profit = getMaxProfitTimecontraint(stockPricesYesterday)
// returns 6 (buying for $5 and sellin
/* console.log(max_profit); */
console.log(maxt_profit)
//O(n*n)
/* function getMaxProfit(stockPricesYesterday)
{
let profit=0;
for(let i=0;i<stockPricesYesterday.length-1;i++)
{
let min_purchase_amount = stockPricesYesterday[i];

for(let j=i+1;j<stockPricesYesterday.length;j++)
{
let max_sale_amount = stockPricesYesterday[j];
if( (max_sale_amount-min_purchase_amount)>=profit &&(max_sale_amount>min_purchase_amount))
  profit = (max_sale_amount-min_purchase_amount);
  else if(max_sale_amount-min_purchase_amount< profit && (min_purchase_amount>max_sale_amount))
  profit = (max_sale_amount-min_purchase_amount);
}


}
return profit;
} */
//O(n)
function getMaxProfitTimecontraint(stockPricesYesterday)
{

let min_purchase_amount = stockPricesYesterday[0];
let max_sale_amount = stockPricesYesterday[1];
let profit =max_sale_amount-min_purchase_amount;
for(let j=1;j<stockPricesYesterday.length;j++)
{
 max_sale_amount = stockPricesYesterday[j];
let current_profit = max_sale_amount-min_purchase_amount;
profit=Math.max(profit,current_profit);
min_purchase_amount = Math.max(min_purchase_amount,max_sale_amount)
}
return profit;
}