热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:剑指Offer之包含min函数的栈

本文由编程笔记#小编为大家整理,主要介绍了剑指Offer之包含min函数的栈相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了剑指Offer之包含min函数的栈相关的知识,希望对你有一定的参考价值。



题目描述




定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。

 

思路:想要找到栈中所含最小元素的min函数,可以用一个栈来存储最小元素,但是又要防止这个最小元素弹出,所以需要存储次小元素到栈中。

 


1 import java.util.Stack;
2
3 public class Solution {
4 Stack stack=new Stack<>();
5 Stack smin=new Stack<>();
6
7 public void push(int node) {
8 stack.push(node);
9 if(smin.isEmpty())
10 smin.push(node);
11 if(node<=smin.peek())
12 smin.push(node);
13 }
14
15 public void pop() {
16 if(smin.peek()==stack.peek())
17 smin.pop();
18 stack.pop();
19 }
20
21 public int top() {
22 return stack.peek();
23 }
24
25 public int min() {
26 return smin.peek();
27 }
28 }

 

 





推荐阅读
author-avatar
Coco__GLL
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有