From bc4208be53206d501b24b26e83a16cf09afa7b9e Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Fri, 28 Feb 2020 21:15:41 +0800 Subject: [PATCH 1/9] =?UTF-8?q?Rename=20=E5=8D=95=E8=B0=83=E9=98=9F?= =?UTF-8?q?=E5=88=97.md=20to=20Monotonic=20queue.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_structure/{单调队列.md => Monotonic queue.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename data_structure/{单调队列.md => Monotonic queue.md} (100%) diff --git a/data_structure/单调队列.md b/data_structure/Monotonic queue.md similarity index 100% rename from data_structure/单调队列.md rename to data_structure/Monotonic queue.md From 65c2f2d7e182f7214a2a7a1408700e7f73c904e9 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 15:31:11 +0800 Subject: [PATCH 2/9] Update Monotonic queue.md --- data_structure/Monotonic queue.md | 40 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/data_structure/Monotonic queue.md b/data_structure/Monotonic queue.md index bb7e852..7d00d06 100644 --- a/data_structure/Monotonic queue.md +++ b/data_structure/Monotonic queue.md @@ -1,59 +1,57 @@ -# 特殊数据结构:单调队列 +# special data structure: monotonic queue +The previous article talked about a special data structure "monotonic stack"a type of problem "Next Greater Number" is solved. This article writes a similar data structure "monotonic queue". -前文讲了一种特殊的数据结构「单调栈」monotonic stack,解决了一类问题「Next Greater Number」,本文写一个类似的数据结构「单调队列」。 +Maybe you haven't heard of the name of this data structure. In fact, it is not difficult. It is a "queue", but it uses a clever method to make the elements in the queue monotonically increase (or decrease). What's the use of this data structure? Can solve a series of problems with sliding windows. -也许这种数据结构的名字你没听过,其实没啥难的,就是一个「队列」,只是使用了一点巧妙的方法,使得队列中的元素单调递增(或递减)。这个数据结构有什么用?可以解决滑动窗口的一系列问题。 - -看一道 LeetCode 题目,难度 hard: +See a LeetCode title,difficulty is hard: ![](../pictures/单调队列/title.png) -### 一、搭建解题框架 +### First, build a problem solving framewor -这道题不复杂,难点在于如何在 O(1) 时间算出每个「窗口」中的最大值,使得整个算法在线性时间完成。在之前我们探讨过类似的场景,得到一个结论: +This problem is not complicated. The difficulty is how to calculate the maximum value in each "window" at O(1) time, so that the entire algorithm is completed in linear time.We discussed similar scenarios before and came to a conclusion: -在一堆数字中,已知最值,如果给这堆数添加一个数,那么比较一下就可以很快算出最值;但如果减少一个数,就不一定能很快得到最值了,而要遍历所有数重新找最值。 +In a bunch of numbers,the best value is known,If you add a number to this bunch of numbers,you can quickly calculate the most value by comparing them,but if you reduce one number,you may not get the maximum vaue quickly,but you can have to go through all the numbers and find the maximum value agai -回到这道题的场景,每个窗口前进的时候,要添加一个数同时减少一个数,所以想在 O(1) 的时间得出新的最值,就需要「单调队列」这种特殊的数据结构来辅助了。 +Back to the scenario of this problem,as each window advances,you need to add a number and decrease one number,so if you want to get a new maximum value in O(1) time,you need a special "monotonic queue" data structure to assist -一个普通的队列一定有这两个操作: +An ordinary queue must have these two operations: ```java class Queue { void push(int n); - // 或 enqueue,在队尾加入元素 n + // Or enqueue, adding element n to the end of the line void pop(); - // 或 dequeue,删除队头元素 + // Or dequeue, remove the leader element } ``` -一个「单调队列」的操作也差不多: +The operation of a "monotonic queue" is similar: ```java class MonotonicQueue { - // 在队尾添加元素 n + // Add element n to the end of the line void push(int n); - // 返回当前队列中的最大值 + // Returns the maximum value in the current queue int max(); - // 队头元素如果是 n,删除它 + // If the head element is n, delete it void pop(int n); } ``` - -当然,这几个 API 的实现方法肯定跟一般的 Queue 不一样,不过我们暂且不管,而且认为这几个操作的时间复杂度都是 O(1),先把这道「滑动窗口」问题的解答框架搭出来: +Of course, the implementation methods of these APIs are definitely different from the general Queue, but we leave them alone, and think that the time complexity of these operations is O (1), first answer this "sliding window" problem Frame out: ```cpp vector maxSlidingWindow(vector& nums, int k) { MonotonicQueue window; vector res; for (int i = 0; i < nums.size(); i++) { - if (i < k - 1) { //先把窗口的前 k - 1 填满 + if (i < k - 1) { // Fill the first k-1 of the window first window.push(nums[i]); - } else { // 窗口开始向前滑动 + } else { // The window begins to slide forward window.push(nums[i]); res.push_back(window.max()); window.pop(nums[i - k + 1]); - // nums[i - k + 1] 就是窗口最后的元素 + // nums[i - k + 1] is the last element of the window } } return res; From 2ed7c001f103504a41fe1e109a16126c9d7b9198 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 15:44:09 +0800 Subject: [PATCH 3/9] Update Monotonic queue.md --- data_structure/Monotonic queue.md | 70 +++++++++++++++---------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/data_structure/Monotonic queue.md b/data_structure/Monotonic queue.md index 7d00d06..731383f 100644 --- a/data_structure/Monotonic queue.md +++ b/data_structure/Monotonic queue.md @@ -7,7 +7,7 @@ See a LeetCode title,difficulty is hard: ![](../pictures/单调队列/title.png) -### First, build a problem solving framewor +### 1, build a problem solving framewor This problem is not complicated. The difficulty is how to calculate the maximum value in each "window" at O(1) time, so that the entire algorithm is completed in linear time.We discussed similar scenarios before and came to a conclusion: @@ -20,9 +20,9 @@ An ordinary queue must have these two operations: ```java class Queue { void push(int n); - // Or enqueue, adding element n to the end of the line + // or enqueue, adding element n to the end of the line void pop(); - // Or dequeue, remove the leader element + // or dequeue, remove the leader element } ``` @@ -30,11 +30,11 @@ The operation of a "monotonic queue" is similar: ```java class MonotonicQueue { - // Add element n to the end of the line + // add element n to the end of the line void push(int n); - // Returns the maximum value in the current queue + // returns the maximum value in the current queue int max(); - // If the head element is n, delete it + // if the head element is n, delete it void pop(int n); } ``` @@ -45,9 +45,9 @@ vector maxSlidingWindow(vector& nums, int k) { MonotonicQueue window; vector res; for (int i = 0; i < nums.size(); i++) { - if (i < k - 1) { // Fill the first k-1 of the window first + if (i < k - 1) { // fill the first k-1 of the window first window.push(nums[i]); - } else { // The window begins to slide forward + } else { // the window begins to slide forward window.push(nums[i]); res.push_back(window.max()); window.pop(nums[i - k + 1]); @@ -60,32 +60,32 @@ vector maxSlidingWindow(vector& nums, int k) { ![图示](../pictures/单调队列/1.png) -这个思路很简单,能理解吧?下面我们开始重头戏,单调队列的实现。 +The idea is simple, understand? Below we start the highlight, the implementation of monotonic queues. -### 二、实现单调队列数据结构 +### 2, Implementing a monotonic queue data structure -首先我们要认识另一种数据结构:deque,即双端队列。很简单: +First we need to know another data structure: deque, which is a double-ended queue. It's simple: ```java class deque { - // 在队头插入元素 n + // insert element n at the head of the team void push_front(int n); - // 在队尾插入元素 n + // insert element n at the end of the line void push_back(int n); - // 在队头删除元素 + // remove elements at the head of the team void pop_front(); - // 在队尾删除元素 + // remove element at the end of the line void pop_back(); - // 返回队头元素 + // returns the team head element int front(); - // 返回队尾元素 + // returns the tail element int back(); } ``` -而且,这些操作的复杂度都是 O(1)。这其实不是啥稀奇的数据结构,用链表作为底层结构的话,很容易实现这些功能。 +Moreover, the complexity of these operations is O (1). This is actually not a rare data structure. If you use a linked list as the underlying structure, it is easy to implement these functions. -「单调队列」的核心思路和「单调栈」类似。单调队列的 push 方法依然在队尾添加元素,但是要把前面比新元素小的元素都删掉: +The core idea of "monotonic queue" is similar to "monotonic stack". The push method of the monotonic queue still adds elements to the end of the queue, but deletes the previous elements smaller than the new element: ```cpp class MonotonicQueue { @@ -100,11 +100,11 @@ public: }; ``` -你可以想象,加入数字的大小代表人的体重,把前面体重不足的都压扁了,直到遇到更大的量级才停住。 +As you can imagine, adding the size of the number represents the weight of the person, squashing the underweight in front, and stopping until it encounters a larger magnitude. ![](../pictures/单调队列/2.png) -如果每个元素被加入时都这样操作,最终单调队列中的元素大小就会保持一个单调递减的顺序,因此我们的 max() API 可以可以这样写: +If every element is added like this, the size of the elements in the monotonic queue will eventually decrease in a monotonic order, so our max () API can be written like this: ```cpp int max() { @@ -112,7 +112,7 @@ int max() { } ``` -pop() API 在队头删除元素 n,也很好写: +The pop () API deletes element n at the head of the team, which is also very easy to write: ```cpp void pop(int n) { @@ -121,11 +121,11 @@ void pop(int n) { } ``` -之所以要判断 `data.front() == n`,是因为我们想删除的队头元素 n 可能已经被「压扁」了,这时候就不用删除了: +The reason to judge `data.front () == n` is because the team head element n we want to delete may have been" squashed ", so we don't need to delete it at this time: ![](../pictures/单调队列/3.png) -至此,单调队列设计完毕,看下完整的解题代码: +At this point, the monotonous queue design is complete, look at the complete problem-solving code: ```cpp class MonotonicQueue { @@ -150,9 +150,9 @@ vector maxSlidingWindow(vector& nums, int k) { MonotonicQueue window; vector res; for (int i = 0; i < nums.size(); i++) { - if (i < k - 1) { //先填满窗口的前 k - 1 + if (i < k - 1) { // fill the first k-1 of the window first window.push(nums[i]); - } else { // 窗口向前滑动 + } else { // window slide forward window.push(nums[i]); res.push_back(window.max()); window.pop(nums[i - k + 1]); @@ -162,22 +162,22 @@ vector maxSlidingWindow(vector& nums, int k) { } ``` -**三、算法复杂度分析** +**3, Algorithm complexity analysis** -读者可能疑惑,push 操作中含有 while 循环,时间复杂度不是 O(1) 呀,那么本算法的时间复杂度应该不是线性时间吧? +Readers may be wondering, while the push operation contains a while loop, the time complexity is not O (1), so the time complexity of this algorithm should not be linear time, right? -单独看 push 操作的复杂度确实不是 O(1),但是算法整体的复杂度依然是 O(N) 线性时间。要这样想,nums 中的每个元素最多被 push_back 和 pop_back 一次,没有任何多余操作,所以整体的复杂度还是 O(N)。 +The complexity of the push operation alone is not O (1), but the overall complexity of the algorithm is still O (N) linear time. To think of it this way, each element in nums is pushed_back and pop_back at most once, without any redundant operations, so the overall complexity is still O (N). -空间复杂度就很简单了,就是窗口的大小 O(k)。 +The space complexity is very simple, which is the size of the window O (k). -**四、最后总结** +**4, Final conclusion** -有的读者可能觉得「单调队列」和「优先级队列」比较像,实际上差别很大的。 +Some readers may think that "monotonic queues" and "priority queues" are more similar, but they are actually very different. -单调队列在添加元素的时候靠删除元素保持队列的单调性,相当于抽取出某个函数中单调递增(或递减)的部分;而优先级队列(二叉堆)相当于自动排序,差别大了去了。 +The monotonic queue maintains the monotonicity of the queue by deleting elements when adding elements, which is equivalent to extracting the monotonically increasing (or decreasing) part of a function; while the priority queue (binary heap) is equivalent to automatic sorting, the difference is large went. -赶紧去拿下 LeetCode 第 239 道题吧~ +Hurry up and get LeetCode's Question 239 ~ -坚持原创高质量文章,致力于把算法问题讲清楚,欢迎关注我的公众号 labuladong 获取最新文章: +Stick to original high-quality articles, and work hard to make algorithmic problems clear. Welcome to follow my public account labuladong for the latest articles: ![labuladong](../pictures/labuladong.jpg) From 471507a4f2389cf26208bea15047530adb03e6a2 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 16:26:13 +0800 Subject: [PATCH 4/9] Update Monotonic queue.md --- data_structure/Monotonic queue.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_structure/Monotonic queue.md b/data_structure/Monotonic queue.md index 731383f..9090a92 100644 --- a/data_structure/Monotonic queue.md +++ b/data_structure/Monotonic queue.md @@ -11,9 +11,9 @@ See a LeetCode title,difficulty is hard: This problem is not complicated. The difficulty is how to calculate the maximum value in each "window" at O(1) time, so that the entire algorithm is completed in linear time.We discussed similar scenarios before and came to a conclusion: -In a bunch of numbers,the best value is known,If you add a number to this bunch of numbers,you can quickly calculate the most value by comparing them,but if you reduce one number,you may not get the maximum vaue quickly,but you can have to go through all the numbers and find the maximum value agai +In a bunch of numbers,the best value is known,If you add a number to this bunch of numbers,you can quickly calculate the most value by comparing them,but if you reduce one number,you may not get the maximum vaue quickly,but you can have to go through all the numbers and find the maximum value again. -Back to the scenario of this problem,as each window advances,you need to add a number and decrease one number,so if you want to get a new maximum value in O(1) time,you need a special "monotonic queue" data structure to assist +Back to the scenario of this problem,as each window advances,you need to add a number and decrease one number,so if you want to get a new maximum value in O(1) time,you need a special "monotonic queue" data structure to assist. An ordinary queue must have these two operations: From 094c638fdec00ad38c7be5cf810be33607fd358c Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 17:17:08 +0800 Subject: [PATCH 5/9] Delete title.png --- pictures/单调队列/title.png | Bin 56963 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 pictures/单调队列/title.png diff --git a/pictures/单调队列/title.png b/pictures/单调队列/title.png deleted file mode 100644 index 62b1f9d26a9fbb62914d7bacfafe5a6f0ddd0724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56963 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 E2QW=~x&QzG From 4557db20ff14c1e8bae1f0be1342f0b050159c25 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 17:19:19 +0800 Subject: [PATCH 6/9] Add files via upload --- pictures/单调队列/title.png | Bin 0 -> 49958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pictures/单调队列/title.png diff --git a/pictures/单调队列/title.png b/pictures/单调队列/title.png new file mode 100644 index 0000000000000000000000000000000000000000..1d5621f4533216719897acbbd0a752058b58cbc0 GIT binary patch literal 49958 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 literal 0 HcmV?d00001 From 21fdab152ccc6137d55ed7f5c0e1ae3124cfb594 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 18:09:32 +0800 Subject: [PATCH 7/9] Create Monotonic queue --- pictures/Monotonic queue | 1 + 1 file changed, 1 insertion(+) create mode 100644 pictures/Monotonic queue diff --git a/pictures/Monotonic queue b/pictures/Monotonic queue new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/pictures/Monotonic queue @@ -0,0 +1 @@ + From e383f4d85715346e02c3c1d4cf7bba2ecf5a5820 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sat, 29 Feb 2020 18:12:20 +0800 Subject: [PATCH 8/9] Delete Monotonic queue --- pictures/Monotonic queue | 1 - 1 file changed, 1 deletion(-) delete mode 100644 pictures/Monotonic queue diff --git a/pictures/Monotonic queue b/pictures/Monotonic queue deleted file mode 100644 index 8b13789..0000000 --- a/pictures/Monotonic queue +++ /dev/null @@ -1 +0,0 @@ - From 02676f0b917aecad831d019d9d8693a448e71b41 Mon Sep 17 00:00:00 2001 From: Jack Wang <47290788+warmingkkk@users.noreply.github.com> Date: Sun, 1 Mar 2020 15:37:44 +0800 Subject: [PATCH 9/9] Update Monotonic queue.md --- data_structure/Monotonic queue.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data_structure/Monotonic queue.md b/data_structure/Monotonic queue.md index 9090a92..d8428f2 100644 --- a/data_structure/Monotonic queue.md +++ b/data_structure/Monotonic queue.md @@ -1,4 +1,8 @@ # special data structure: monotonic queue +Author:labuladong https://github.com/labuladong + +Translator:warmingkkk https://github.com/warmingkkk + The previous article talked about a special data structure "monotonic stack"a type of problem "Next Greater Number" is solved. This article writes a similar data structure "monotonic queue". Maybe you haven't heard of the name of this data structure. In fact, it is not difficult. It is a "queue", but it uses a clever method to make the elements in the queue monotonically increase (or decrease). What's the use of this data structure? Can solve a series of problems with sliding windows. @@ -112,7 +116,7 @@ int max() { } ``` -The pop () API deletes element n at the head of the team, which is also very easy to write: +The pop () API deletes element n at the head of the queue, which is also very easy to write: ```cpp void pop(int n) { @@ -121,7 +125,7 @@ void pop(int n) { } ``` -The reason to judge `data.front () == n` is because the team head element n we want to delete may have been" squashed ", so we don't need to delete it at this time: +The reason to judge `data.front () == n` is because the queue head element n we want to delete may have been" squashed ", so we don't need to delete it at this time: ![](../pictures/单调队列/3.png) @@ -162,7 +166,7 @@ vector maxSlidingWindow(vector& nums, int k) { } ``` -**3, Algorithm complexity analysis** +### 3, Algorithm complexity analysis Readers may be wondering, while the push operation contains a while loop, the time complexity is not O (1), so the time complexity of this algorithm should not be linear time, right? @@ -170,14 +174,10 @@ The complexity of the push operation alone is not O (1), but the overall complex The space complexity is very simple, which is the size of the window O (k). -**4, Final conclusion** +### 4, Final conclusion Some readers may think that "monotonic queues" and "priority queues" are more similar, but they are actually very different. The monotonic queue maintains the monotonicity of the queue by deleting elements when adding elements, which is equivalent to extracting the monotonically increasing (or decreasing) part of a function; while the priority queue (binary heap) is equivalent to automatic sorting, the difference is large went. Hurry up and get LeetCode's Question 239 ~ - -Stick to original high-quality articles, and work hard to make algorithmic problems clear. Welcome to follow my public account labuladong for the latest articles: - -![labuladong](../pictures/labuladong.jpg)