స్టాక్ II లీట్‌కోడ్ సొల్యూషన్ కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయం


కఠినత స్థాయి సులువు
తరచుగా అడుగుతుంది అమెజాన్ డిఇ షా <span style="font-family: Mandali; ">ఫేస్‌బుక్ </span> మైక్రోసాఫ్ట్ మోర్గాన్ స్టాన్లీ ఉబెర్
అర్రే అత్యాశకరమైన

సమస్యల నివేదిక

“స్టాక్ II ను కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయం” అనే సమస్యలో, శ్రేణిలోని ప్రతి మూలకం ఆ రోజు ఇచ్చిన స్టాక్ ధరను కలిగి ఉన్న శ్రేణిని మాకు ఇస్తారు.

యొక్క నిర్వచనం లావాదేవీ స్టాక్ యొక్క ఒక వాటాను కొనుగోలు చేయడం మరియు ఆ స్టాక్ యొక్క ఒక వాటాను అమ్మడం.

కింది పరిమితుల ప్రకారం గరిష్ట లాభాలను కనుగొనడం మా పని:

  1. మేము మునుపటి స్టాక్ అమ్మకపోతే కొత్త స్టాక్ కొనలేము. ఒక సమయంలో మనం గరిష్టంగా ఒక స్టాక్ కలిగి ఉండవచ్చు.
  2. మనకు కావలసినన్ని లావాదేవీలు చేయవచ్చు.

ఉదాహరణ

prices = [7,1,5,3,6,4]
7

వివరణ: పొందగల గరిష్ట లాభం 7. లావాదేవీ వివరాలు క్రిందివి:

మొదటి రోజు: విశ్రాంతి

రెండవ రోజు: కొనండి

మూడవ రోజు: అమ్మండి

నాల్గవ రోజు: కొనండి

ఐదవ రోజు: అమ్మండి

ఆరవ రోజు: విశ్రాంతి

స్టాక్ II లీట్‌కోడ్ సొల్యూషన్‌ను కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయం కోసం విధానం

లావాదేవీల సంఖ్యపై మాకు ఎటువంటి పరిమితులు లేనందున మేము a గురించి ఆలోచిస్తాము అత్యాశ అల్గోరిథం ఇక్కడ. కాబట్టి ప్రతిసారీ మేము ఒక స్టాక్‌ను కనీస ధరకు కొనుగోలు చేసి గరిష్ట ధరకు అమ్ముతాము. ప్రతి మినిమా వద్ద మేము ఒక స్టాక్‌ను కొనుగోలు చేస్తాము మరియు ప్రతి మాగ్జిమా వద్ద, మేము ఒక స్టాక్‌ను విక్రయిస్తాము. ఇది క్రింద ఇచ్చిన చిత్రంలో వివరించబడింది. ఇది స్టాక్ ధర మరియు రోజుల మధ్య ప్లాట్లు. స్టాక్ II ను కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయానికి లీట్‌కోడ్ పరిష్కారం

చిన్న విలువలను మినిమాకు చేర్చినప్పుడు మాగ్జిమా ఏర్పడుతుందని గమనించినట్లయితే మనం దానిని సరళంగా చేయవచ్చు. కాబట్టి గరిష్ట లాభాలను లెక్కించడానికి ప్రతి మినిమా మరియు మాగ్జిమాను ట్రాక్ చేసినప్పటికీ, మేము ఆ విలువలను మా లాభానికి నేరుగా జోడించవచ్చు, దీని కోసం మేము ధనాత్మక వాలును కనుగొన్నాము [i]> ధరలు [i-1]. అలాంటి అన్ని విలువలను చేర్చడం వల్ల మనకు గరిష్ట లాభం లభిస్తుంది.

స్టాక్ II ను కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయానికి లీట్‌కోడ్ పరిష్కారం

అమలు

స్టాక్ II కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయం కోసం C ++ కోడ్

#include <bits/stdc++.h> 
using namespace std; 
    int maxProfit(vector<int>& prices) {
        int n=prices.size();
        int ans = 0;
        for (int i = 1; i < n; i++) {
            if (prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
int main() 
{ 
 vector<int> arr = { 7,1,5,3,6,4 }; 
 cout<<maxProfit(arr)<<endl; 
 return 0;
}
7

స్టాక్ II కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయం కోసం జావా కోడ్

import java.util.Arrays; 
public class Tutorialcup {
     public static int maxProfit(int[] prices) {
        int ans = 0;
        int n=prices.length;
        for (int i = 1; i < n; i++) {
            if (prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
  public static void main(String[] args) {
    int [] arr = {7,1,5,3,6,4}; 
    int ans=  maxProfit(arr);
    System.out.println(ans);
  }
}
7

స్టాక్ II లీట్‌కోడ్ సొల్యూషన్‌ను కొనడానికి మరియు అమ్మడానికి ఉత్తమ సమయం యొక్క సంక్లిష్టత విశ్లేషణ

సమయం సంక్లిష్టత

పై కోడ్ యొక్క సమయం సంక్లిష్టత పై) ఎందుకంటే మేము ధర శ్రేణిని ఒక్కసారి మాత్రమే ప్రయాణిస్తున్నాము. ఇక్కడ n అనేది ధర శ్రేణి యొక్క పొడవు.

స్థల సంక్లిష్టత

పై కోడ్ యొక్క స్థల సంక్లిష్టత O (1) ఎందుకంటే మేము జవాబును నిల్వ చేయడానికి మాత్రమే మెమరీని ఉపయోగిస్తాము.

ప్రస్తావనలు