
队列
一杯小熊
这个作者很懒,什么都没留下…
展开
-
LeetCode 406 根据身高重建队列
class Solution: def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]: people = sorted(people, key = lambda x: [-x[0], x[1]]) res = [] for p in people: if len(res) <= p[1]: ...原创 2021-04-23 11:27:47 · 77 阅读 · 0 评论 -
剑指Offer 59- 二 队列的最大值
思路:使用一个单调递减双向队列class MaxQueue: def __init__(self): from collections import deque self.A, self.B = deque(), deque() def max_value(self) -> int: return self.B[0] if self.A else -1 def push_back(self, value: int)..原创 2021-03-14 15:20:37 · 72 阅读 · 0 评论 -
剑指Offer 59-1. 滑动窗口的最大值
class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: if not nums or k == 0: return [] deque = collections.deque() # 未形成窗口 for i in range(k): while deque and deque[-1] <...原创 2021-03-14 14:55:26 · 58 阅读 · 0 评论 -
剑指offer 09:用两个栈实现队列
只用一次遍历就可以实现,栈1保存进来的元素,栈2用来弹出元素class CQueue: def __init__(self): self.stack1 = [] self.stack2 = [] def appendTail(self, value: int) -> None: self.stack1.append(value) def deleteHead(self) -> int: ..原创 2021-02-24 10:36:41 · 87 阅读 · 0 评论