赞
踩
leetcode152
同一个思路,法一是用栈实现,法二是用数组实现
/** * @Author: ggdpzhk * @CreateTime: 2024-08-03 * 最小栈 155 */ import java.util.Stack; public class _015_MinStack { //提交时 class名和构造方法名 改为 MinStack class MinStack1{ public Stack<Integer> data; public Stack<Integer> min; public MinStack1(){ data = new Stack<>(); min = new Stack<>(); } public void push(int val){ data.push(val); if(min.isEmpty() || val < min.peek()){ min.push(val); }else{ min.push(min.peek()); } } public void pop(){ data.pop(); min.pop(); } public int top(){ return data.peek(); } public int getMin(){ return min.peek(); } } //提交时 class名和构造方法名 改为 MinStack //用数组实现 class MInStack2{ //leetcode的数据在测试时,同时在栈里的数据不超过这个值 //这是几次提交实验得出的 //如果leetcode补测试数据,超过这个量导致出错,就调大 public final int MAXN = 8001; public int[] data; public int[] min; int size;//栈中现在有多少数据,同时压同时弹,所以两个数组的size是一样的 public MInStack2(){ data = new int[MAXN]; min = new int[MAXN]; } public void push(int val){ data[size] = val; if(size == 0 || val < min[size-1]){ min[size] = val; }else{ min[size] = min[size-1]; } size++; } public void pop(){ size--; } public int top(){ return data[size-1]; } public int getMin(){ return min[size-1]; } } }
因为我是在idea里面写了再复制过来,可能就会出现不一致的问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。