劍指Offer 59 II 佇列的最大值

2021-10-09 22:27:55 字數 649 閱讀 7287

請定義乙個佇列並實現函式 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 ...