請定義乙個佇列並實現函式 max_value 得到佇列裡的最大值,要求函式max_value、push_back 和 pop_front 的均攤時間複雜度都是o(1)。
若隊列為空,pop_front 和 max_value 需要返回 -1
額外維護乙個雙端佇列, 用來儲存當前佇列可能的最大值, 且是有序的, 首大尾小
插入資料時, 將雙端佇列中所有小於value的尾部元素彈出, 將value存放於雙端佇列尾部
彈出隊首時, 需要判斷雙端佇列的隊首是否也是該值, 如果是則一起彈出
class
maxqueue
public
intmax_value()
public
void
push_back
(int value)
// 將該值存放於尾部
deque.
addlast
(value);}
public
intpop_front()
int result = queue.
poll()
;if(result == deque.
getfirst()
)return result;
}}
劍指 Offer 59 II 佇列的最大值
題目描述 請定義乙個佇列並實現函式 max value 得到佇列裡的最大值,要求函式max value push back 和 pop front 的均攤時間複雜度都是o 1 若隊列為空,pop front 和 max value 需要返回 1 示例1 輸入 maxqueue push back p...
劍指 Offer 59 II 佇列的最大值
請定義乙個佇列並實現函式 max value 得到佇列裡的最大值,要求函式max value push back 和 pop front 的均攤時間複雜度都是o 1 若隊列為空,pop front 和 max value 需要返回 1 示例 1 輸入 maxqueue push back push ...
劍指 Offer 59 II 佇列的最大值
請定義乙個佇列並實現函式 max value 得到佇列裡的最大值,要求函式max value push back 和 pop front 的均攤時間複雜度都是o 1 若隊列為空,pop front 和 max value 需要返回 1 示例 1 輸入 maxqueue push back push ...