假设堆栈中有50000+个整数项?如何有效地找出它的最大值或最小值? 堆栈可以增长或减少pop()和push(),但是我们需要跟踪堆栈中的最大值和最小值?查找堆栈中的最大值和最小值
0
A
回答
0
我唯一的想法是继承堆栈并保持最大值和最小值。在弹出和推动做你的最大和最小的变化。
1
正如Mischel指出的,Stack with find-min/find-max more efficient than O(n)?已经回答了这个问题。
但是,这种回应表明,您需要在堆栈中的每个点上存储每个最大值和最小值。更好的解决方案是为最大值和最小值分别设置一个堆栈。对于最大堆栈,只有当新元素大于当前最大值时,才会将新元素推入最大堆栈,反之亦然。当您弹出主堆栈的元素等于它们并且不等于主堆栈中的下一个元素时,您将弹出最小和最大堆栈的元素。
请注意,这需要O(n)额外的空间,同时提供O(1)操作。
相关问题
- 1. 查找最小值和最大值JAVA
- 2. 查找最大,最小和中间值
- 3. 在Java中查找num值和最小值/最大值值
- 4. 在bigquery中查找多个值的最小值和最大值
- 5. 查找值的平均值,最大值和最小值进入
- 6. 查找最大值/最小值
- 7. 查找局部最小值/最大值
- 8. SQL查询 - 查找日常最小值,最大值和时间的最小值和最大值发生
- 9. 在clojure中查找一棵树的最大值和最小值
- 10. 如何查找列表框中的最大值和最小值
- 11. 如何找到最大堆栈大小?
- 12. 查找最大群集的最小值?
- 13. MongooseJS查找最大值,最小值和平均值
- 14. 在SQL中查找局部最大值和局部最小值
- 15. 从bash数组中查找最大值和最小值
- 16. 在WPF DataGrid列中查找最大值和最小值
- 17. 查找最大值和最小值为偶数和奇数
- 18. 最大值和最小值?
- 19. 查找无ARRAY最小值和最大值的Java
- 20. 查找数组的最小值和最大值
- 21. 查找最大值和最小值每N行的CSV数据
- 22. 查找长矢量的最小值和最大值
- 23. Js:查找可能的变量最大值和最小值
- 24. Haskell ::查找一组元组的最小值和最大值
- 25. 中的std ::最大值和最小值
- 26. 查找最大的5值小于1,最小的5个值
- 27. 如何查找最大值和最小值
- 28. 如何使用nCr查找最小值和最大值?
- 29. Unix脚本 - 查找最小值和最大值(Bash Shell)
- 30. 使用CUBLAS查找最大值和最小值
什么是编程语言?如何用数组或链表实现堆栈? – 2014-10-29 09:01:33
你是否需要实现这种堆栈?你有一个堆栈,并希望找到最小和最大?对操作有没有O(?)限制?你有一些代码可以分享吗? – yossico 2014-10-29 10:53:57
[Stack with find-min/find-max更有效率比O(n)?](http://stackoverflow.com/questions/7134129/stack-with-find-min-find-max-more-高效超上) – 2014-10-29 12:40:53