mirror of
https://github.com/chefyuan/algorithm-base.git
synced 2025-10-17 13:31:34 +00:00
代码重构 【Github Actions】
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
>
|
||||
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
|
||||
>
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
|
||||
#### [739. 每日温度](https://leetcode-cn.com/problems/daily-temperatures/)
|
||||
|
||||
@@ -10,38 +10,32 @@
|
||||
|
||||
> 请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。
|
||||
|
||||
示例1:
|
||||
示例 1:
|
||||
|
||||
> 输入: temperatures = [73, 74, 75, 71, 69, 72, 76, 73]
|
||||
>
|
||||
> 输出:arr = [1, 1, 4, 2, 1, 1, 0, 0]
|
||||
> 输出:arr = [1, 1, 4, 2, 1, 1, 0, 0]
|
||||
|
||||
示例2:
|
||||
示例 2:
|
||||
|
||||
> 输入:temperatures = [30,30,31,45,31,34,56]
|
||||
>
|
||||
> 输出:arr = [2,1,1,3,1,1,0]
|
||||
> 输出:arr = [2,1,1,3,1,1,0]
|
||||
|
||||
#### 题目解析
|
||||
|
||||
其实我们可以换种方式理解这个题目,比如我们 temperatures[0] = 30,则我们需要找到后面第一个比 30 大的数,也就是 31,31的下标为 2,30 的下标为 0 ,则我们的返回数组 arr[0] = 2。
|
||||
其实我们可以换种方式理解这个题目,比如我们 temperatures[0] = 30,则我们需要找到后面第一个比 30 大的数,也就是 31,31 的下标为 2,30 的下标为 0 ,则我们的返回数组 arr[0] = 2。
|
||||
|
||||
理解了题目之后我们来说一下解题思路。
|
||||
|
||||
遍历数组,数组中的值为待入栈元素,待入栈元素入栈时会先跟栈顶元素进行对比,如果小于该值则入栈,如果大于则将栈顶元素出栈,新的元素入栈。
|
||||
|
||||
例如栈顶为69,新的元素为72,则69出栈,72入栈。并赋值给 arr,69 的索引为4,72的索引为5,则 arr[4] = 5 - 4 = 1,这个题目用到的是单调栈的思想,下面我们来看一下视频解析。
|
||||
|
||||
|
||||
例如栈顶为 69,新的元素为 72,则 69 出栈,72 入栈。并赋值给 arr,69 的索引为 4,72 的索引为 5,则 arr[4] = 5 - 4 = 1,这个题目用到的是单调栈的思想,下面我们来看一下视频解析。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
注:栈中的括号内的值,代表索引对应的元素,我们的入栈的为索引值,为了便于理解将其对应的值写在了括号中
|
||||
|
||||
|
||||
|
||||
```java
|
||||
class Solution {
|
||||
public int[] dailyTemperatures(int[] T) {
|
||||
@@ -55,8 +49,8 @@ class Solution {
|
||||
for (int i = 0; i < len; i++) {
|
||||
//单调栈
|
||||
while (!stack.isEmpty() && T[i] > T[stack.peek()]){
|
||||
arr[stack.peek()] = i - stack.pop();
|
||||
}
|
||||
arr[stack.peek()] = i - stack.pop();
|
||||
}
|
||||
stack.push(i);
|
||||
}
|
||||
return arr;
|
||||
@@ -64,5 +58,3 @@ class Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
>
|
||||
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
|
||||
>
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
|
||||
今天我们好好说说单调栈和单调队列。其实很容易理解,单调栈就是单调递增或单调递减的栈,栈内元素是有序的,单调队列同样也是。
|
||||
|
||||
@@ -20,15 +20,13 @@
|
||||
|
||||
**示例 1:**
|
||||
|
||||
> 输入: ["MaxQueue","push_back","push_back","max_value","pop_front","max_value"]
|
||||
> [[],[1],[2],[],[],[]]
|
||||
> 输入: ["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"]
|
||||
> [[],[],[]]
|
||||
> 输入:
|
||||
> ["MaxQueue","pop_front","max_value"] > [[],[],[]]
|
||||
> 输出: [null,-1,-1]
|
||||
|
||||
#### 题目解析:
|
||||
@@ -41,22 +39,12 @@
|
||||
|
||||
下面我们来说一下双端队列。我们之前说过的队列,遵守先进先出的规则,双端队列则可以从队头出队,也可以从队尾出队。我们先通过一个视频来简单了解下双端队列。
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
我们可以用双端队列做辅助队列,用辅助队列来保存当前队列的最大值。我们同时定义一个普通队列和一个双端单调队列。普通队列就正常执行入队,出队操作。max_value 操作则返回咱们的双端队列的队头即可。下面我们来看一下代码的具体执行过程吧。
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
我们来对视频进行解析
|
||||
|
||||
1.我们需要维护一个单调双端队列,上面的队列则执行正常操作,下面的队列队头元素则为上面队列的最大值
|
||||
@@ -74,10 +62,10 @@ class MaxQueue {
|
||||
public MaxQueue() {
|
||||
que = new LinkedList<>();
|
||||
deq = new LinkedList<>();
|
||||
}
|
||||
//获取最大值值,返回我们双端队列的对头即可,因为我们双端队列是单调递减的嘛
|
||||
}
|
||||
//获取最大值值,返回我们双端队列的对头即可,因为我们双端队列是单调递减的嘛
|
||||
public int max_value() {
|
||||
return deq.isEmpty() ? -1 : deq.peekFirst();
|
||||
return deq.isEmpty() ? -1 : deq.peekFirst();
|
||||
}
|
||||
//入队操作
|
||||
public void push_back(int value) {
|
||||
@@ -94,11 +82,11 @@ class MaxQueue {
|
||||
public int pop_front() {
|
||||
if(que.isEmpty()) return -1;
|
||||
if (que.peek().equals(deq.peekFirst())) {
|
||||
deq.pollFirst();
|
||||
deq.pollFirst();
|
||||
}
|
||||
return que.poll();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
###
|
||||
###
|
||||
|
@@ -1,8 +1,8 @@
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
>
|
||||
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
|
||||
>
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
|
||||
#### [42. 接雨水](https://leetcode-cn.com/problems/trapping-rain-water/)
|
||||
|
||||
@@ -24,58 +24,56 @@
|
||||
输出:9
|
||||
```
|
||||
|
||||
示例3:
|
||||
示例 3:
|
||||
|
||||
```
|
||||
输入:[4,3,2,0,1,1,5]
|
||||
输出:13
|
||||
```
|
||||
|
||||
> 上面是由数组 [4,3,2,0,1,1,5]表示的高度图,在这种情况下,可以接 13个单位的雨水(见下图)。
|
||||
> 上面是由数组 [4,3,2,0,1,1,5]表示的高度图,在这种情况下,可以接 13 个单位的雨水(见下图)。
|
||||
|
||||
### 题目解析:
|
||||
|
||||
看了上面的示例刚开始刷题的同学可能有些懵逼,那我们结合图片来理解一下,我们就用示例3的例子进行举例,他的雨水到底代表的是什么。
|
||||
看了上面的示例刚开始刷题的同学可能有些懵逼,那我们结合图片来理解一下,我们就用示例 3 的例子进行举例,他的雨水到底代表的是什么。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
上图则为我们的题目描述,是不是理解了呢?你也可以这样理解我们在地上放置了若干高度的黄色箱子,他们中间有空隙,然后我们想在他们里面插入若干蓝色箱子,并保证插入之后,这些箱子的左视图和右视图都不能看到蓝色箱子。
|
||||
|
||||
好啦题目我们已经理解了,下面我们看一下解题思路。做这个这前我们可以先去看一下我们之前做过的另一道题目每日温度。这两道题目的思路差不多,都是利用了单调栈的思想,下面我们来看一下具体思路吧。
|
||||
|
||||
这里我们也系统的说一下单调栈,单调栈含义就是栈内的元素是单调的,我们这两个题目用到的都是递减栈(相同也可以),我们依次将元素压入栈,如果当前元素小于等于栈顶元素则入栈,如果大于栈顶元素则先将栈顶不断出栈,直到当前元素小于或等于栈顶元素为止,然后再将当前元素入栈。就比如下图的4,想入栈的话则需要2,3出栈之后才能入栈,因为4大于他俩。
|
||||
这里我们也系统的说一下单调栈,单调栈含义就是栈内的元素是单调的,我们这两个题目用到的都是递减栈(相同也可以),我们依次将元素压入栈,如果当前元素小于等于栈顶元素则入栈,如果大于栈顶元素则先将栈顶不断出栈,直到当前元素小于或等于栈顶元素为止,然后再将当前元素入栈。就比如下图的 4,想入栈的话则需要 2,3 出栈之后才能入栈,因为 4 大于他俩。
|
||||
|
||||
<img src="https://img-blog.csdnimg.cn/20210320134154434.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzODg1OTI0,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述" style="zoom:80%;" />
|
||||
|
||||
我们了解单调栈的含义下面我们来看一下接雨水问题到底该怎么做,其实原理也很简单,我们通过我们的例3来进行说明。
|
||||
我们了解单调栈的含义下面我们来看一下接雨水问题到底该怎么做,其实原理也很简单,我们通过我们的例 3 来进行说明。
|
||||
|
||||
首先我们依次入栈4,3,2,0我们的数组前四个元素是符合单调栈规则的。但是我们的第五个1,是大于0的。那我们就需要0出栈1入栈。但是我们这样做是为了什么呢?有什么意义呢?别急我们来看下图。
|
||||
首先我们依次入栈 4,3,2,0 我们的数组前四个元素是符合单调栈规则的。但是我们的第五个 1,是大于 0 的。那我们就需要 0 出栈 1 入栈。但是我们这样做是为了什么呢?有什么意义呢?别急我们来看下图。
|
||||
|
||||

|
||||
|
||||
上图我们的,4,3,2,0已经入栈了,我们的另一个元素为1,栈顶元素为0,栈顶下的元素为2。那么我们在这一层接到的雨水数量怎么算呢?2,0,1这三个元素可以接住的水为一个单位(见下图)这是我们第一层接到水的数量。
|
||||
上图我们的,4,3,2,0 已经入栈了,我们的另一个元素为 1,栈顶元素为 0,栈顶下的元素为 2。那么我们在这一层接到的雨水数量怎么算呢?2,0,1 这三个元素可以接住的水为一个单位(见下图)这是我们第一层接到水的数量。
|
||||
|
||||
注:能接到水的情况,肯定是中间低两边高,这样才可以。
|
||||
|
||||

|
||||
|
||||
因为我们需要维护一个单调栈,所以我们则需要将0出栈1入栈,那么此时栈内元素为4,3,2,1。下一位元素为1,我们入栈,此时栈内元素为4,3,2,1,1。下一元素为5,栈顶元素为1,栈顶的下一元素仍为1,则需要再下一个元素,为2,那我们求当前层接到的水的数量。
|
||||
因为我们需要维护一个单调栈,所以我们则需要将 0 出栈 1 入栈,那么此时栈内元素为 4,3,2,1。下一位元素为 1,我们入栈,此时栈内元素为 4,3,2,1,1。下一元素为 5,栈顶元素为 1,栈顶的下一元素仍为 1,则需要再下一个元素,为 2,那我们求当前层接到的水的数量。
|
||||
|
||||

|
||||
|
||||
我们是通过2,1,1,5这四个元素求得第二层的接水数为1*3=3;1是因为min(2-1,5-1)=min(1,4)得来的,大家可以思考一下木桶效应。装水的多少,肯定是按最短的那个木板来的,所以高度为1,3的话是因为5的索引为6,2的索引为2,他们之间共有三个元素(3,4,5)也就是3个单位。所以为6-2-1=3。
|
||||
我们是通过 2,1,1,5 这四个元素求得第二层的接水数为 1\*3=3;1 是因为 min(2-1,5-1)=min(1,4)得来的,大家可以思考一下木桶效应。装水的多少,肯定是按最短的那个木板来的,所以高度为 1,3 的话是因为 5 的索引为 6,2 的索引为 2,他们之间共有三个元素(3,4,5)也就是 3 个单位。所以为 6-2-1=3。
|
||||
|
||||
将1出栈之后,我们栈顶元素就变成了2,下一元素变成了3,那么3,2,5这三个元素同样也可以接到水。
|
||||
将 1 出栈之后,我们栈顶元素就变成了 2,下一元素变成了 3,那么 3,2,5 这三个元素同样也可以接到水。
|
||||
|
||||

|
||||
|
||||
这是第三层的接水情况,能够接到4个单位的水,下面我们继续出栈2,那么我们的4,3,5仍然可以接到水啊。
|
||||
这是第三层的接水情况,能够接到 4 个单位的水,下面我们继续出栈 2,那么我们的 4,3,5 仍然可以接到水啊。
|
||||
|
||||

|
||||
|
||||
这是我们第四层接水的情况,一共能够接到5个单位的水,那么我们总的接水数加起来,那就是
|
||||
这是我们第四层接水的情况,一共能够接到 5 个单位的水,那么我们总的接水数加起来,那就是
|
||||
|
||||
1+3+4+5=13。你学会了吗?别急还有视频我们,我们再来深入理解一哈。
|
||||
|
||||
@@ -91,7 +89,7 @@ class Solution {
|
||||
//特殊情况
|
||||
if(height.length <3){
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
for(int i = 0; i < height.length; i++){
|
||||
while(!stack.isEmpty() && height[i] > height[stack.peek()]){
|
||||
//栈顶元素
|
||||
@@ -119,15 +117,4 @@ class Solution {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
@@ -1,8 +1,8 @@
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
>
|
||||
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
|
||||
>
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
|
||||
#### [155. 最小栈](https://leetcode-cn.com/problems/min-stack/)
|
||||
|
||||
@@ -15,8 +15,7 @@
|
||||
|
||||
输入:
|
||||
|
||||
> ["MinStack","push","push","push","getMin","pop","top","getMin"]
|
||||
> [[],[-2],[0],[-3],[],[],[],[]]
|
||||
> ["MinStack","push","push","push","getMin","pop","top","getMin"] > [[],[-2],[0],[-3],[],[],[],[]]
|
||||
|
||||
输出:
|
||||
|
||||
@@ -24,20 +23,15 @@
|
||||
|
||||
#### 题目解析
|
||||
|
||||
感觉这个题目的难度就在读懂题意上面,读懂之后就没有什么难的了,我们在上面的滑动窗口的最大值已经进行了详细描述,其实这个题目和那个题目思路一致。该题让我们设计一个栈,该栈具有的功能有,push,pop,top等操作,并且能够返回栈的最小值。比如此时栈中的元素为 5,1,2,3。我们执行 getMin() ,则能够返回 1。这块是这个题目的精髓所在,见下图。
|
||||
感觉这个题目的难度就在读懂题意上面,读懂之后就没有什么难的了,我们在上面的滑动窗口的最大值已经进行了详细描述,其实这个题目和那个题目思路一致。该题让我们设计一个栈,该栈具有的功能有,push,pop,top 等操作,并且能够返回栈的最小值。比如此时栈中的元素为 5,1,2,3。我们执行 getMin() ,则能够返回 1。这块是这个题目的精髓所在,见下图。
|
||||
|
||||

|
||||
|
||||
我们一起先通过一个视频先看一下具体解题思路,通过视频一定可以整懂的,我们注意观察栈 B 内的元素。
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
我们来对视频进行解析
|
||||
1.我们执行入栈操作时,先观察需要入栈的元素是否小于栈 B 的栈顶元素,如果小于则两个栈都执行入栈操作。
|
||||
我们来对视频进行解析 1.我们执行入栈操作时,先观察需要入栈的元素是否小于栈 B 的栈顶元素,如果小于则两个栈都执行入栈操作。
|
||||
|
||||
2.栈 B 的栈顶元素则是栈 A 此时的最小值。则 getMin() 只需返回栈 B 的栈顶元素即可。
|
||||
|
||||
@@ -52,7 +46,7 @@ class MinStack {
|
||||
public MinStack() {
|
||||
A = new Stack<>();
|
||||
B = new Stack<>();
|
||||
}
|
||||
}
|
||||
//入栈,如果插入值,当前插入值小于栈顶元素,则入栈,栈顶元素保存的则为当前栈的最小元素
|
||||
public void push(int x) {
|
||||
A.push(x);
|
||||
@@ -60,15 +54,15 @@ class MinStack {
|
||||
B.push(x);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//出栈,如果A出栈等于B栈顶元素,则说明此时栈内的最小元素改变了。
|
||||
//这里需要使用 equals() 代替 == 因为 Stack 中存储的是 int 的包装类 Integer
|
||||
public void pop() {
|
||||
if (A.pop().equals(B.peek()) ) {
|
||||
B.pop();
|
||||
}
|
||||
}
|
||||
//A栈的栈顶元素
|
||||
}
|
||||
//A栈的栈顶元素
|
||||
public int top() {
|
||||
return A.peek();
|
||||
}
|
||||
@@ -79,4 +73,4 @@ class MinStack {
|
||||
}
|
||||
```
|
||||
|
||||
###
|
||||
###
|
||||
|
@@ -1,8 +1,8 @@
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
> 如果阅读时,发现错误,或者动画不可以显示的问题可以添加我微信好友 **[tan45du_one](https://raw.githubusercontent.com/tan45du/tan45du.github.io/master/个人微信.15egrcgqd94w.jpg)** ,备注 github + 题目 + 问题 向我反馈
|
||||
>
|
||||
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
|
||||
>
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
|
||||
|
||||
#### [剑指 Offer 59 - I. 滑动窗口的最大值](https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/)
|
||||
|
||||
@@ -16,18 +16,12 @@
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
好啦,我们了解双端队列是什么东东了,下面我们通过一个动画,来看一下代码的执行过程吧,相信各位一下就能够理解啦。
|
||||
|
||||
我们就通过题目中的例子来表述。nums = [1,3,-1,-3,5,3,6,7], k = 3
|
||||
|
||||
|
||||
我们就通过题目中的例子来表述。nums = [1,3,-1,-3,5,3,6,7], k = 3
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
不知道通过上面的例子能不能给各位描述清楚,如果不能的话,我再加把劲,各位看官,请接着往下看。
|
||||
|
||||
我们将执行过程进行拆解。
|
||||
@@ -78,4 +72,3 @@ class Solution {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user