![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈
princey2100
这个作者很懒,什么都没留下…
展开
-
Leetcode239. 滑动窗口最大值 Sliding Window Maximum - Python 以单调队列实现
注意理解 在压入新元素时,如果待压入元素比当前队列中的元素都大,(必须是>,>=不能通过某些示例) 则需要把队列中的元素都踢出去。这样的话才能保证最大的元素始终在单调队列的左出口。注意理解 只有当待踢出元素==单调队列最左边元素时,才真正将单调队列最左边元素踢出。其它情况下,待提出元素在push函数中,已经被踢出去了,不需要再踢一次。注意理解 1.单调队列是从右至左单调递减或递增的,此处是递减。2.单调队列最右边的出口始终是滑动窗口中最大的元素。原创 2022-09-13 10:47:21 · 324 阅读 · 0 评论 -
Leetcode150. 逆波兰表达式求值 Evaluate Reverse Polish Notation - Python 以栈实现
class Solution: def evalRPN(self, tokens: List[str]) -> int: stack = [] for i in tokens: if i in {"+","-","*","/"}: last = stack.pop() first = stack.pop() .原创 2022-03-30 11:14:00 · 1089 阅读 · 0 评论 -
Leetcode 1047.删除字符串中的所有相邻重复项 Remove All Adjacent Duplicates In String - Python 以栈实现
class Solution: def removeDuplicates(self, s: str) -> str: stack = [] for i in s: if not stack or stack[-1] != i: #当 栈为空 或 待入栈元素与栈顶元素不等时 入栈 stack.append(i) else: #.原创 2022-03-29 23:05:46 · 540 阅读 · 0 评论 -
Leetcode 225. 用队列实现栈 Implement Stack using Queues - Python
from collections import deque class MyStack: def __init__(self): self.queue_in = deque() self.queue_out = deque() def push(self, x: int) -> None: self.queue_in.append(x) def pop(self) -> int: if self..原创 2022-03-26 13:56:56 · 545 阅读 · 0 评论 -
Leetcode 232. 用栈实现队列 Implement Queue using Stacks - Python 用双栈实现队列
class MyQueue: def __init__(self): self.stack_in = [] self.stack_out = [] def push(self, x: int) -> None: self.stack_in.append(x) def pop(self) -> int: if self.empty(): return None .原创 2022-03-26 12:38:45 · 917 阅读 · 0 评论