假設堆棧中有50000+個整數項?如何有效地找出它的最大值或最小值? 堆棧可以增長或減少pop()和push(),但是我們需要跟蹤堆棧中的最大值和最小值?查找堆棧中的最大值和最小值
0
A
回答
0
我唯一的想法是繼承堆棧並保持最大值和最小值。在彈出和推動做你的最大和最小的變化。
1
正如Mischel指出的,Stack with find-min/find-max more efficient than O(n)?已經回答了這個問題。
但是,這種迴應表明,您需要在堆棧中的每個點上存儲每個最大值和最小值。更好的解決方案是爲最大值和最小值分別設置一個堆棧。對於最大堆棧,只有當新元素大於當前最大值時,纔會將新元素推入最大堆棧,反之亦然。當您彈出主堆棧的元素等於它們並且不等於主堆棧中的下一個元素時,您將彈出最小和最大堆棧的元素。
請注意,這需要O(n)額外的空間,同時提供O(1)操作。
相關問題
- 1. C查找最大值和最小值?
- 2. 查找最大值和最小值
- 3. 查找最小值和最大值
- 4. 查找最小值和最大值JAVA
- 5. 查找最大,最小和中間值
- 6. 查找最小值的最大值
- 7. 在Java中查找num值和最小值/最大值值
- 8. 在bigquery中查找多個值的最小值和最大值
- 9. 查找值的平均值,最大值和最小值進入
- 10. 查找最大值/最小值
- 11. 查找局部最小值/最大值
- 12. SQL查詢 - 查找日常最小值,最大值和時間的最小值和最大值發生
- 13. 在F#中查找最大值,最小值和平均值#
- 14. 如何找到最大堆棧大小?
- 15. 在jqplot中查找dateaxis的最小值和最大值
- 16. 在clojure中查找一棵樹的最大值和最小值
- 17. 查找元組(數據庫)中的最小值和最大值
- 18. 如何查找列表框中的最大值和最小值
- 19. 在MATLAB中查找曲面的最小值和最大值
- 20. 使用循環查找python中的最大值和最小值
- 21. 查找五次數組中的最大值和最小值
- 22. 分鐘堆棧中的最小值
- 23. 查找最大羣集的最小值?
- 24. SQL查詢最大值和最小值
- 25. 在WPF DataGrid列中查找最大值和最小值
- 26. 在嵌套NSDictionary中查找最小值和最大值
- 27. 在csv文件中查找最小值和最大值
- 28. 在.json中查找最大值和最小值
- 29. 在Python中查找最小值和最大值
- 30. 在C中查找最小值和最大值(while循環)
什麼是編程語言?如何用數組或鏈表實現堆棧? – 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