【每日一题】【使用list&使用辅助栈实现】2022年2月11日-NC90 包含min函数的栈
生活随笔
收集整理的這篇文章主要介紹了
【每日一题】【使用list&使用辅助栈实现】2022年2月11日-NC90 包含min函数的栈
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的 min 函數,輸入操作時保證 pop、top 和 min 函數操作時,棧中一定有元素。
此棧包含的方法有:
push(value):將value壓入棧中
pop():彈出棧頂元素
top():獲取棧頂元素
min():獲取棧中最小元素
方法1:使用list實現,非函數本意
import java.util.*;
public class Solution {
ArrayList<Integer> list = new ArrayList<>();
public void push(int node) {
list.add(0, node);
}
public void pop() {
list.remove(0);
}
public int top() {
return list.get(0);
}
public int min() {
return Collections.min(list);
}
}
方法2:使用輔助棧
import java.util.Stack;
public class Solution {
Stack<Integer> main = new Stack<>();
Stack<Integer> helper = new Stack<>();
public void push(int node) {
main.add(node);
if(helper.isEmpty() || helper.peek() > node) {
helper.add(node);
} else {
helper.add(helper.peek());
}
}
public void pop() {
main.pop();
helper.pop();
}
public int top() {
return main.peek();
}
public int min() {
return helper.peek();
}
}
總結
以上是生活随笔為你收集整理的【每日一题】【使用list&使用辅助栈实现】2022年2月11日-NC90 包含min函数的栈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目前流行前端几大UI框架
- 下一篇: 在win7下python的xlrd和xl