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()))
这将使你的代码通过所有测试用例