博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
155. Min Stack
阅读量:7069 次
发布时间:2019-06-28

本文共 894 字,大约阅读时间需要 2 分钟。

一、题目

  1、审题

  

  2、分析

    设计一个 minStack,使其有  pop、push、top、getMin 功能,且 getMin 的检索时间为常数。

 

二、解答

  1、思路:

     采用一个 Stack 进行实现。

      ①、采用变量 min 记录站中的最小值。

      ②、若入栈元素 p >= min,则 P 入栈。否则 min 先入栈,p 再入栈,且min 值修改为 P。当 p 出栈时,min即可再次通过出栈获得。

   

  int min = Integer.MAX_VALUE;    Stack
stack = new Stack<>(); /** initialize your data structure here. */ public MinStack() { } public void push(int x) { if(x <= min) { stack.push(min); // 若 min >= x, 将前一个 min 埋在下边一个位置 min = x; } stack.push(x); // x 埋入 } public void pop() { if(stack.pop() == min) // 若出栈元素为 min min = stack.pop(); // 则前一个 min 为再次出栈 } public int top() { return stack.peek(); } public int getMin() { return min; }

 

      

转载于:https://www.cnblogs.com/skillking/p/9783447.html

你可能感兴趣的文章
9.19 数组 冒泡排序和二分法
查看>>
妈了个蛋,写了个炒鸡垃圾的脚本,也是醉了
查看>>
图论1——基础
查看>>
蒙哥玛利模幂算法
查看>>
龙威零式_团队项目例会记录_14
查看>>
YAFFS2文件系统分析(转)
查看>>
获取GET/POST提交的数据,并处理中文问题
查看>>
jdbc 获取connection 对象的三种方式
查看>>
jsp标签+jstl
查看>>
第二阶段个人总结09
查看>>
FATAL ERROR: Could not find ./bin/my_print_defaults的解决办法
查看>>
文摘《十一》
查看>>
jquery 笔记。。。——》摘自武方博
查看>>
一个夭折,
查看>>
C#开发微信门户及应用(1)--开始使用微信接口(转)
查看>>
Kali-linux使用社会工程学工具包(SET)
查看>>
ScriptManager(脚本控制器)
查看>>
Android chromium 2
查看>>
poj_3468,线段树成段更新
查看>>
什么是mybatis?
查看>>