堆栈java中的最大元素

时间:2017-01-03 22:20:55

标签: java algorithm performance stack max

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

问题是执行三个查询1 - 用于将元素添加到堆栈2 - 用于弹出元素3 - 用于打印最大元素 链接发布在上面 我无法在hackerrank上获得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());
        }

        }

1 个答案:

答案 0 :(得分:0)

您的代码是正确的,而不是@font-face { font-family: 'Bazar'; src: url('fonts/Bazar.ttf'); font-weight: bold; } @font-face { font-family: 'Cuban'; src: url('fonts/Cuban.otf'); font-weight: bold; } @font-face { font-family: 'Alice-Regular'; src: url('fonts/Alice-Regular.ttf'); font-weight: bold; } 使用if(st.peek()==stmax.peek())这将使您的代码通过所有测试用例