155. Min Stack
来源:互联网 发布:广东广电网络收费标准 编辑:程序博客网 时间:2024/06/14 16:56
题目:https://leetcode.com/problems/min-stack/
思路:
1.之前想到用stack,pop,push什么的都挺方便的,getmin这个方法,我的想法是设立一个暂时的堆用来存储stack中pop出来的值(通过pop得到的值与min对比得到新的min),而后将这个堆中的值存回stack。但是时间感人,timelimit exceed!
2.(dicuss中)新的是用链表,并且新建一个类Item用来存值以及当前的最小值
代码:
===============================public class MinStack { public LinkedList<Item> item; public int size; /** initialize your data structure here. */ public MinStack() { item = new LinkedList<>(); size = 0; } public void push(int x) { Item newItem = new Item(); newItem.val = x; if(isEmpty()) { newItem.min = newItem; } else { int lastmin = item.getLast().min.val; if(x<lastmin) newItem.min = newItem; else newItem.min = item.getLast().min; } item.addLast(newItem); size++; } public void pop() { if(!isEmpty()) { item.removeLast(); size--; } } public int top() { if(!isEmpty()) return item.getLast().val; else return -1; } public int getMin() { return item.getLast().min.val; } public boolean isEmpty() { if(size==0) return true; else return false; } class Item { int val; Item min; }}/** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */111ms
0 0
- Stack-----155. Min Stack
- LeetCode 155. Min Stack
- 【LeetCode】155.Min Stack
- LeetCode 155.Min Stack
- [leetcode] 155.Min Stack
- [leetcode] 155.Min Stack
- 155. Min Stack
- 155. Min Stack
- Leetcode 155. Min Stack
- 155. Min Stack
- 155. Min Stack LeetCode
- 155. Min Stack
- [LeetCode]155. Min Stack
- 155. Min Stack
- 155. Min Stack
- 155. Min Stack
- LeetCode *** 155. Min Stack
- 【leetcode】155. Min Stack
- Unable to resolve target 'android-18'
- 给VMWare上的CentOS以NAT方式配置静态IP
- Android系统关机充电动画实现
- 跑Android appium服务报内存溢出解决方法
- MATLAB参数估计normfit()函数和mle()函数
- 155. Min Stack
- php学习第二天_特殊类型
- Rxjava操作符的简单使用
- python2和python3在windows共存问题
- MarkdownPad2.5 注册码
- Android 自定义View中drawText位置注意事项小记
- gengxin
- Android手势密码解锁
- 【win32】限定值范围的语法