劍指 Offer 59 II 佇列的最大值

2021-10-11 02:38:12 字數 1147 閱讀 9811

請定義乙個佇列並實現函式 max_value 得到佇列裡的最大值,要求函式max_value、push_back 和 pop_front 的均攤時間複雜度都是o(1)。

若隊列為空,pop_front 和 max_value 需要返回 -1

示例 1:

輸入:

["maxqueue","push_back","push_back","max_value","pop_front","max_value"]

[,[1],[2],,,]

輸出: [null,null,null,2,1,2]

示例 2:

輸入:

["maxqueue","pop_front","max_value"]

[,,]

輸出: [null,-1,-1]

限制:1 <= push_back,pop_front,max_value的總算子 <= 10000

1 <= value <= 10^5

class

maxqueue

public

intmax_value()

return d.

peekfirst()

;}public

void

push_back

(int value)

d.offerlast

(value)

; q.

offer

(value);}

public

intpop_front()

int ans = q.

poll()

;if(ans == d.

peekfirst()

)return ans;

}}

class

maxqueue

public

intmax_value()

return ans;

}public

void

push_back

(int value)

public

intpop_front()

return q[begin++];

}}

劍指 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 額外維護乙個雙端佇列,用來儲存當前佇列可能的最大值,且是有序的,...

劍指 Offer 59 II 佇列的最大值

請定義乙個佇列並實現函式 max value 得到佇列裡的最大值,要求函式max value push back 和 pop front 的均攤時間複雜度都是o 1 若隊列為空,pop front 和 max value 需要返回 1 示例 1 輸入 maxqueue push back push ...