0%

代码随想录第三十二天

字符串-滑动窗口最大值

题目链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
private:
class MyQueue{
public:
deque<int> que;
void pop(int val){
if(!que.empty() && que.front() == val)
que.pop_front();
}
void push(int val){
while(!que.empty() && val > que.back()){
que.pop_back();
}
que.push_back(val);
}
int front(){
return que.front();
}
};
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
MyQueue que;
vector<int> res;
for(int i = 0; i < k; i++)que.push(nums[i]);

res.push_back(que.front());
for(int i = k; i < nums.size(); i++){
que.pop(nums[i-k]);
que.push(nums[i]);
res.push_back(que.front());
}
return res;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
stack = []
for item in tokens:
if item not in {"+", "-", "*", "/"}:
stack.append(item)
else:
num1, num2 = stack.pop(), stack.pop()
stack.append(
int(eval(f'{num2} {item} {num1}'))
)
return int(stack.pop())