方法 nbGreaterThanFirst 返回 myStack 中大于或等于 myStack 顶部元素的元素数。假设堆栈的顶部是 5,并且有 7、3 和 9 的元素。它应该返回 9,因为它大于堆栈中的其余元素。算法的步骤对我来说似乎没问题,但它不起作用。有什么建议么?
import java.util.Stack;
public class greaterStack {
public static int nbGreaterThanFirst(Stack<Integer> myStack) {
int firstStack = myStack.peek(); // firstStack = 5
for(int i=0; i<myStack.size(); i++) {
if(myStack.peek() >= firstStack) { // if any element is greater than 5
firstStack = myStack.peek();
myStack.pop();
}
}
return firstStack;
}
public static void main(String[] args) {
Stack<Integer> s = new Stack<Integer>();
s.push(1);
s.push(3);
s.push(7);
s.push(5);
System.out.println(nbGreaterThanFirst(s));
}
}