码迷,mamicode.com
首页 > 编程语言 > 详细

九章算法面试题50 队列上实现Min函数

时间:2015-05-13 10:29:19      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:队列   leetcode   九章算法   lintcode   面试题   

九章算法官网-原文网址

http://www.jiuzhang.com/problem/50/


题目

?在《九章算法面试题23 栈上实现Min函数》中,我们介绍了在栈上实现一个O(1)的Min方法。那么,如何在队列上实现一个Min方法?

要求,队列除了支持基本的Push(x) Pop()的方法以外,还需要支持Min方法,返回当前队列中的最小元素。每个方法的均摊复杂度为O(1)



解答

在九章面试题49《用栈实现队列》和面试题23《栈上实现Min函数》中,我们讲解到了如何用栈实现队列和在栈上实现Min函数。那么将两个题的解法结合起来,就是如何在队列中实现Min函数。简要的步骤如下:

Queue.push(x):

    MinStack1.push(x)


Queue.pop():

    if MinStack2.empty():

       while (!MinStack1.empty()):

           MinStack2.push(MinStack1.pop())

    return MinStack2.pop()


Queue.min():

    return min(MinStack1.min(), MinStack2.min())

九章算法面试题50 队列上实现Min函数

标签:队列   leetcode   九章算法   lintcode   面试题   

原文地址:http://blog.csdn.net/jiuzhang_ninechapter/article/details/45680445

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!