0

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

1 に答える 1