నిమ్మరసం మార్చండి లీట్‌కోడ్ పరిష్కారం


కఠినత స్థాయి సులువు
తరచుగా అడుగుతుంది అమెజాన్ Atlassian
అత్యాశకరమైన లీట్‌కోడ్

ఈ పోస్ట్ లెమనేడ్ చేంజ్ లీట్‌కోడ్ సొల్యూషన్‌లో ఉంది

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

”నిమ్మరసం మార్పు” సమస్యలో a క్యూ కస్టమర్ల. వారు 5 రూపాయలు ఖర్చయ్యే మా నుండి నిమ్మరసం కొనాలనుకుంటున్నారు. వినియోగదారులు మాకు 5 రూపాయలు, 10 రూపాయలు లేదా 20 రూపాయలు ఇవ్వవచ్చు. మేము మార్పులకు సరైన మొత్తాన్ని వినియోగదారులకు తిరిగి ఇవ్వాలనుకుంటున్నాము. ప్రారంభంలో, మాకు ఎటువంటి మార్పు లేదు. ప్రతి కస్టమర్‌కు సరైన మార్పును విజయవంతంగా తిరిగి ఇవ్వగలమా లేదా అనే దానిపై మేము సమాధానం చెప్పాలి.

ఉదాహరణ

 bills = [5,5,5,10,20]
true

వివరణ:

నిమ్మరసం మార్చండి లీట్‌కోడ్ పరిష్కారం

ప్రారంభ మూడు లావాదేవీలలో, మేము ఎటువంటి మార్పు ఇవ్వనవసరం లేదు. మూడు లావాదేవీల తరువాత మన దగ్గర 5 రూపాయల మూడు నాణేలు ఉన్నాయి. నాల్గవ లావాదేవీ సమయంలో, మేము 5 రూపాయలు తిరిగి ఇవ్వాలి. కాబట్టి నాల్గవ లావాదేవీ తరువాత, మన దగ్గర 2 రూపాయల 5 నాణేలు, 10 నాణేల నాణెం ఉంది. ఐదవ లావాదేవీలో, మేము 15 రూపాయలు తిరిగి ఇవ్వాలి. మనం పది రూపాయల నాణెం, ఐదు రూపాయల నాణెం తిరిగి ఇవ్వవచ్చు. అన్ని లావాదేవీలు పూర్తయినందున సమాధానం నిజం.

అప్రోచ్

ఇది అత్యాశ అల్గోరిథం ఉపయోగించి అమలు సమస్య. శ్రేణిలో ఇవ్వబడిన విలువలు కస్టమర్ల క్యూను సూచిస్తాయి కాబట్టి మేము అదే సమయంలో శ్రేణిని దాటినప్పుడు మేము కూడా లావాదేవీలు చేస్తాము. ప్రారంభంలో, మాకు ఎటువంటి మార్పు లేదు కాబట్టి ఐదు, పది మరియు ఇరవై రూపాయల నాణేల సంఖ్య సున్నా.

ప్రతి దృశ్యం ఒక్కొక్కటిగా చూద్దాం:

  1. కస్టమర్ ఐదు రూపాయలు చెల్లిస్తే, మేము అతనికి ఎటువంటి మార్పు ఇవ్వనవసరం లేదు మరియు మాతో ఉన్న ఐదు రూపాయల నాణేల సంఖ్య ఒక్కొక్కటిగా పెరుగుతుంది.
  2. కస్టమర్ పది రూపాయలు చెల్లిస్తారని అనుకుందాం, అప్పుడు అతనికి మార్పు ఇవ్వడానికి మనకు కనీసం ఒక ఐదు రూపాయల నాణెం ఉండాలి. మేము అలా చేయడంలో విఫలమైతే, అందరికీ సరైన మార్పును ఇవ్వడం సాధ్యం కానందున మేము తప్పుడు తిరిగి వస్తాము.
  3. కస్టమర్ ఇరవై రూపాయలు చెల్లిస్తే, మేము అతనికి రెండు రకాలుగా మార్పు ఇవ్వగలము:
    1. ఒకవేళ మన దగ్గర పది రూపాయల నాణెం, ఐదు రూపాయల నాణెం ఉంటే అప్పుడు అతనికి మొత్తం పదిహేను రూపాయలు తిరిగి ఇవ్వవచ్చు. మేము విఫలమైతే రెండవ పద్ధతి కోసం చూస్తాము.
    2. మేము మొత్తం పదిహేను రూపాయలను తిరిగి ఇవ్వవలసి ఉన్నందున, మేము అతనికి ఐదు నాణేల మూడు నాణేలను ఇవ్వవచ్చు. ఇందుకోసం మన దగ్గర కనీసం 3 నాణేలు ఫైవ్స్ రూపాయలు ఉండాలి. మేము అలా చేయడంలో విఫలమైతే, అందరికీ సరైన మార్పును ఇవ్వడం సాధ్యం కానందున మేము తప్పుడు తిరిగి వస్తాము.

మేము వినియోగదారులందరికీ సరైన మార్పును అందించినట్లయితే, అప్పుడు మేము నిజం అవుతాము.

కోడ్

నిమ్మరసం చేంజ్ లీట్‌కోడ్ సొల్యూషన్ కోసం సి ++ కోడ్

#include <bits/stdc++.h> 
using namespace std; 
       bool lemonadeChange(vector<int>& bills) {
        int n=bills.size();
        int five=0,ten=0,twenty=0;
        for(int i=0;i<n;i++)
        {
            if(bills[i]==5)five++;
            else if(bills[i]==10)
            {
                ten++;
                if(five>0)five--;
                else return false;
            }   
            else 
            {
               twenty++;
                if(ten>0&&five>0){ten--;five--;}
                else if(five>2)five=five-3;
                else return false;
            }
                
        }
            return true;
    }

int main() 
{ 
 vector<int> arr = {5,5,5,10,20}; 
 cout <<boolalpha;
 cout<<lemonadeChange(arr)<<endl; 
 return 0;
}

 

true

నిమ్మరసం చేంజ్ లీట్‌కోడ్ సొల్యూషన్ కోసం జావా కోడ్

import java.util.Arrays; 
public class Tutorialcup {
    public static boolean lemonadeChange(int[] bills) {
                int n=bills.length;
        int five=0,ten=0,twenty=0;
        for(int i=0;i<n;i++)
        {
            if(bills[i]==5)five++;
            else if(bills[i]==10)
            {
                ten++;
                if(five>0)five--;
                else return false;
            }   
            else 
            {
               twenty++;
                if(ten>0&&five>0){ten--;five--;}
                else if(five>2)five=five-3;
                else return false;
            }
                
        }
            return true;
    }
  public static void main(String[] args) {
    int [] arr = {5,5,5,10,20}; 
    boolean ans= lemonadeChange(arr);
    System.out.println(ans);
  }
true

నిమ్మరసం మార్పు సంక్లిష్టత విశ్లేషణ లీట్‌కోడ్ పరిష్కారం

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

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

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

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

ప్రస్తావనలు