堆栈 Java 中的最大元素



https://www.hackerrank.com/challenges/maximum-element

QUES 是执行三个查询 1-用于将 elment 添加到堆栈 2-用于弹出元素 3-用于打印最大元素链接发布在上面IAM 无法在黑客排名上获得 6-7 个案例的输出

    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());
        }
        }

你的代码是正确的,但不是if(st.peek()==stmax.peek())使用if(st.peek().equals(stmax.peek()))这将使你的代码通过所有测试用例

最新更新