mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 15:09:40 +08:00
Merge pull request #1690 from Freshield/master
更新了0239.滑动窗口最大值:python3的用例,替换list为deque,如果用list会超时的问题
This commit is contained in:
@ -297,15 +297,18 @@ class Solution {
|
||||
|
||||
Python:
|
||||
```python
|
||||
from collections import deque
|
||||
|
||||
|
||||
class MyQueue: #单调队列(从大到小
|
||||
def __init__(self):
|
||||
self.queue = [] #使用list来实现单调队列
|
||||
self.queue = deque() #这里需要使用deque实现单调队列,直接使用list会超时
|
||||
|
||||
#每次弹出的时候,比较当前要弹出的数值是否等于队列出口元素的数值,如果相等则弹出。
|
||||
#同时pop之前判断队列当前是否为空。
|
||||
def pop(self, value):
|
||||
if self.queue and value == self.queue[0]:
|
||||
self.queue.pop(0)#list.pop()时间复杂度为O(n),这里可以使用collections.deque()
|
||||
self.queue.popleft()#list.pop()时间复杂度为O(n),这里需要使用collections.deque()
|
||||
|
||||
#如果push的数值大于入口元素的数值,那么就将队列后端的数值弹出,直到push的数值小于等于队列入口元素的数值为止。
|
||||
#这样就保持了队列里的数值是单调从大到小的了。
|
||||
|
Reference in New Issue
Block a user