我最近在一次采访中遇到了这个问题:
设计一个支持 2 个操作的数据结构:
1. push(N) - 存储一个数字
2. popmin() - 提取所有存储数字的当前最小值并将其从存储中删除
push 和 popmin必须在 O(1) 时间内执行。
起初我想使用 2 个堆栈,但这只允许获得最小数量,而不是删除它。
有任何想法吗?
问问题
163 次
我最近在一次采访中遇到了这个问题:
设计一个支持 2 个操作的数据结构:
1. push(N) - 存储一个数字
2. popmin() - 提取所有存储数字的当前最小值并将其从存储中删除
push 和 popmin必须在 O(1) 时间内执行。
起初我想使用 2 个堆栈,但这只允许获得最小数量,而不是删除它。
有任何想法吗?