由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道刚面的算法题
相关主题
CareerCup question请问怎么用Class实现Stack
问个google面试题Ask a google interview question
谈谈面试中化归的思想Stack的Top方法可以返回const引用么?
白板代码,支持O(1)时间GetMin的stack问Tarjan's Strong Connected Component中的
Depth-First-Search用C设计Stack的interface,要求支持各种数据类型。
Arista Networks面经2G一道题
问道题,应该是常被问到,可找不到好的algFind the K largest element in a sorted M*N array
还有两个题。一道面试题
相关话题的讨论汇总
话题: minimum话题: stack话题: current话题: element话题: min
进入JobHunting版参与讨论
1 (共1页)
d*********g
发帖数: 59
1
一个stack, with push, pop, min()三个method,问如何设计min使效率最高
我说把push设计为每次输入都比较转换,2,3,5,6,10这样最上面都是最小的元素。
好像还不满意,不知道还有没有更好的设计方法?
h**********d
发帖数: 4313
2
用两个stack那题
所有都是O(1) ?
d*********g
发帖数: 59
3
用两个stack如何能够实现push,pop,min都是O(1)?如果min是O(1)那么push肯定要
至少Log(N)啊,输入是random的integer3,6,2,8, 5, 10这样
w****m
发帖数: 146
4
another stack just keeps the current min information.
And it updates only when minimum element in the stack changes(a number
smaller than current minimum pushes in or current minimum pops out)

【在 d*********g 的大作中提到】
: 用两个stack如何能够实现push,pop,min都是O(1)?如果min是O(1)那么push肯定要
: 至少Log(N)啊,输入是random的integer3,6,2,8, 5, 10这样

f****g
发帖数: 313
j*****u
发帖数: 1133
6


【在 d*********g 的大作中提到】
: 一个stack, with push, pop, min()三个method,问如何设计min使效率最高
: 我说把push设计为每次输入都比较转换,2,3,5,6,10这样最上面都是最小的元素。
: 好像还不满意,不知道还有没有更好的设计方法?

j*****u
发帖数: 1133
7
two stacks, one to keep min and push/pop together
or one stack but every item has a local min, i.e.
class MinStack
{
Stack stack;
private class StackItem
{
public T Data { get; set;}
public T LocalMin { get; set;}
}
}

【在 d*********g 的大作中提到】
: 一个stack, with push, pop, min()三个method,问如何设计min使效率最高
: 我说把push设计为每次输入都比较转换,2,3,5,6,10这样最上面都是最小的元素。
: 好像还不满意,不知道还有没有更好的设计方法?

d*********g
发帖数: 59
8
好方法

【在 f****g 的大作中提到】
: here is the solution from ihas1337code:
: http://www.ihas1337code.com/2010/11/stack-that-supports-push-pop-and-getmin.html

t****0
发帖数: 235
9
When you perform a pop operation, check if the popped element is the same
as the current minimum. If it is, pop it off the minimum stack too.
seems not correct -
how about the popped up element is not current minimum but another element
in the minimum stack.
next time when a current minimum is popped out, an incorrect current
minimum might be used from the minimum stack.

【在 d*********g 的大作中提到】
: 好方法
t****0
发帖数: 235
10
this is not possible. suppose there is such an element in the minimum stack
- then it must be pushed into minimum stack earlier then current minimum.
Therefore it is pushed into the regular stack earlier then current minimum...
this is correct.

【在 t****0 的大作中提到】
: When you perform a pop operation, check if the popped element is the same
: as the current minimum. If it is, pop it off the minimum stack too.
: seems not correct -
: how about the popped up element is not current minimum but another element
: in the minimum stack.
: next time when a current minimum is popped out, an incorrect current
: minimum might be used from the minimum stack.

1 (共1页)
进入JobHunting版参与讨论
相关主题
一道面试题Depth-First-Search
How to serialize and deserializeArista Networks面经2
print a BST level by level, last row first问道题,应该是常被问到,可找不到好的alg
职业杯另外一道还有两个题。
CareerCup question请问怎么用Class实现Stack
问个google面试题Ask a google interview question
谈谈面试中化归的思想Stack的Top方法可以返回const引用么?
白板代码,支持O(1)时间GetMin的stack问Tarjan's Strong Connected Component中的
相关话题的讨论汇总
话题: minimum话题: stack话题: current话题: element话题: min