myStack の最上位の要素以上の myStack 内の要素の数を返す nbGreaterThanFirst メソッド。スタックの一番上が 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));
}
}