关闭

剑指offer--包含min函数的栈

标签: 数据结构剑指offer-java实现牛客网在线编程
280人阅读 评论(0) 收藏 举报
分类:

题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。


AC代码:

import java.util.Stack;

public class Solution {

    Stack stack = new Stack();

    public void push(int node) {
        stack.push(node);
    }

    public void pop() {
        stack.pop();
    }

    public int top() {
        return (int)stack.pop();
    }

    public int min() {
        Stack tmp = new Stack();
        int min = (int)stack.pop();
        tmp.push(min);
        while(!stack.isEmpty()){
            int top = (int)stack.pop();
            if ( top < min){
                min = top;
            }
            tmp.push(top);
        }
        while(!tmp.isEmpty()){
            stack.push(tmp.pop());
        }
        return min;
    }
}
0
0
查看评论

剑指offer--包含min函数的栈

题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 import java.util.Stack; public class Solution { Stack stack1 = new Stack(); Stack stack2 = new St...
  • kangaroo835127729
  • kangaroo835127729
  • 2015-04-11 19:03
  • 550

剑指Offer-->包含min函数的栈

首先我们可以想到一种很简单的方法:将元素压入栈中,当第二个元素压栈的时候,与第一个元素进行比较,然后使较大的元素出栈,压栈结束后,栈中存留的便是最小的元素。但是,如果我们要想得到下一个最小的元素呢? 另一种方法:便是建立一个辅助栈来存放最小值。 例:首先在空的数据栈中压入数字3,3是此时...
  • qq_21394609
  • qq_21394609
  • 2015-05-23 12:07
  • 448

剑指offer--包含Min函数的栈

题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 其实并没有太懂这道题的意思 package 剑指offer; import java.util.Stack; /*思路就是一个栈放数据,一个栈放最小的数,保证最小的数一定在栈顶*/ publ...
  • obession
  • obession
  • 2017-07-09 16:09
  • 57

剑指offer--面试题30:包含min函数的栈

#include #include using namespace std; class Solution { public: stack st, minSt;//st表示存储元素的栈,minSt保存每次栈操作时,保存栈中最小元素 void push(int value) ; void...
  • u010726692
  • u010726692
  • 2017-08-10 15:27
  • 65

剑指offer--面试题21:包含min函数的栈

 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 python实现: # -*- coding:utf-8 -*- class Solution:     def __init__(self):  ...
  • qingyujean
  • qingyujean
  • 2016-09-27 17:44
  • 96

剑指Offer面试题21(Java版):包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1). 看到这个问题,我们的第一反应可能是每次压入一个新元素进栈时,将栈里的所有元素排序,让最小的元素位于栈顶,这样就能在O(1)时间得到最小元素了。但这种思路不能...
  • jsqfengbao
  • jsqfengbao
  • 2015-08-03 19:04
  • 1599

包含min函数的栈JAVA实现

import java.util.ArrayList; /* * 设计包含min 函数的栈。 * 定义栈的数据结构,要求添加一个min 函数,能够得到栈的最小元素。 * 要求函数min、push 以及pop 的时间复杂度都是O(1)。 * 思路:设计栈的元素同时包含当前值和当前最小值,这样...
  • Bryan__
  • Bryan__
  • 2016-08-01 00:28
  • 1075

程序员面试题精选100题(02)-设计包含min函数的栈—python实现

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议进行许可。允许非商业转载,但应注明作者及出处。作者:liuyuan_jq2011-07-13题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop
  • liuyuan_jq
  • liuyuan_jq
  • 2011-07-13 17:56
  • 1138

剑指-包含min函数的栈

题目: 定义栈的数据结构,请在该类型中实现一个能够的得到最小的min函数,在该栈中,调用min,push,pop函数都是O(1)时间复杂度.思路: 可以把每次的最小元素(之前的最小元素和新压入栈的元素两者较小值)都保存起来放到另外一个辅助栈中. 如果每次都把最小元素压入辅助栈,就能保证辅助...
  • biezhihua
  • biezhihua
  • 2016-08-25 15:33
  • 503

LeetCode-Min Stack(包含min函数的栈)

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. push(x) -- Push element x onto stack.pop() -- Remov...
  • My_Jobs
  • My_Jobs
  • 2015-02-05 11:18
  • 867
    个人资料
    • 访问:155570次
    • 积分:4928
    • 等级:
    • 排名:第6843名
    • 原创:329篇
    • 转载:0篇
    • 译文:0篇
    • 评论:80条
    博客专栏
    最新评论