2017-01-03 2 views
-2

https://www.hackerrank.com/challenges/maximum-elementMaximum Element in einem Stapel Java

ques ist drei Abfragen 1 für das Hinzufügen Elment durchzuführen, um zu Stapel 2-for poping Element 3 zum Drucken von max Element Link oben IAM gebucht wird nicht in der Lage Ausgabe zu erhalten für 6-7 Fälle auf hackerrank

int n,i;int in1,in2; 
    Scanner sc=new Scanner(System.in); 
    n=sc.nextInt(); 
    Stack<Integer> st=new Stack<Integer>();//stack for elements 
    Stack<Integer> stmax=new Stack<Integer>(); // stack for storing maximum 
     for(i=1;i<=n;i++) 
     { 
     in1=sc.nextInt(); 
     if(in1==1) 
      { 
        in2=sc.nextInt(); 
        if(st.size()==0) 
         { 

           stmax.push(in2); 
           st.push(in2); 
         } 
        else 
         { 
           if(in2>=stmax.peek()) 
            { 

           stmax.push(in2); 
           } 
           st.push(in2); 

          }  
     } 
     if(in1==2) 
      { 
      if(st.peek()==stmax.peek()) 
       stmax.pop(); 
      st.pop(); 

     } 
     if(in1==3) 
      { 
      System.out.println(stmax.peek()); 
     } 

     } 
+2

Was bedeutet „nicht in der Lage zu bekommen, die ou Pass tput "gemein? – kraskevich

+0

@abhinav bitte seien Sie spezifisch und kurz, wenn Sie Fragen stellen ... – RamPrakash

+0

Kommentieren Sie Ihren Code, und lassen Sie Ihre IDE es vor dem Posten formatieren. Verwenden Sie eine Rechtschreibprüfung. – greybeard

Antwort

0

Code ist richtig, aber statt if(st.peek()==stmax.peek()) Verwendung if(st.peek().equals(stmax.peek())) wird dieser Code alle Testfälle

+0

danke für die ans! Es funktioniert jetzt. Aber kannst du deine Lösung erklären? – abhinav

+0

Ihre Stapel verwenden Ganzzahlen und Ganzzahlen sind Objekte die gleiche wie String also == bedeutet eigentlich Referenzgleichheit nicht Wert Gleichheit und Sie brauchen Wertgleichheit – m7mdbadawy

Verwandte Themen