達成するための2つのスタックを持ちます
パブリック クラスGetMinStack { プライベートスタック<整数> stackData。 プライベートスタック<整数> stackMin。 パブリックGetMinStack(){ この .stackData = 新しいスタック<整数> (); この .stackMin = 新しいスタック<整数> (); } 公共 ボイドプッシュ(INT OBJ){ 場合(stackMin.isEmpty()){ stackMin.push(OBJ)。 } 他{ stackMin.push(OBJ <getmin()? OBJ:getmin()); } stackData.push(OBJ)。 } 公共の int型getmin(){ 場合(stackMin.isEmpty()){ スロー 新しい(のRuntimeExceptionを" あなたのスタックが空です。" ); } を返す)(stackMin.peekします。 } 公共の int型のポップ(){ 場合(この.stackData.isEmpty()){ スロー 新しい(のRuntimeExceptionを" あなたのスタックが空です。" ); } この.stackMin.pop()。 リターン これを .stackData.pop(); } }