[栈] leetcode 503 Next Greater Element II
Posted fish1996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[栈] leetcode 503 Next Greater Element II相关的知识,希望对你有一定的参考价值。
problem:https://leetcode.com/problems/next-greater-element-ii/
一道比较简单的单调队列题目。不过由于题目要求是循环的,需要两个pass,第二个pass处理循环生效的next greater,同时需要把下标已经超出范围的队首数据及时pop出来。
class Solution public: vector<int> nextGreaterElements(vector<int>& nums) deque<int> q; vector<int> res(nums.size(), -1); for (int i = 0; i < nums.size(); i++) while (!q.empty() && nums[i] > nums[q.back()]) res[q.back()] = nums[i]; q.pop_back(); q.push_back(i); for (int i = 0; i < nums.size(); i++) while (!q.empty() && nums[i] > nums[q.back()]) res[q.back()] = nums[i]; q.pop_back(); while (!q.empty() && q.front() <= i)q.pop_front(); if (q.empty())break; return res; ;
以上是关于[栈] leetcode 503 Next Greater Element II的主要内容,如果未能解决你的问题,请参考以下文章
leetcode496 - Next Greater Element I - easy && leetcode503 - Next Greater Element II - medi
Leetcode 503. Next Greater Element II JAVA语言
[栈] leetcode 1019 Next Greater Node In Linked List