503. Next Greater Element II

来源:互联网 发布:sql有几种关联查询 编辑:程序博客网 时间:2024/05/14 02:29

不容易想到,还是看了答案才知道怎么写的。
主要是利用了stack。当放入的元素大于top时,记录结果并且不断迭代,直到放入的元素小于top停止。
不容易想到啊。。。。。/<哭>/

class Solution {public:    vector<int> nextGreaterElements(vector<int>& nums) {        if(nums.size()==0)            return nums;        else        {            stack<int> findNext;            vector<int> result(nums.size(),-1);            for(int i=0;i<=nums.size()-1;i++)            {                while((!findNext.empty())&&nums[i]>nums[findNext.top()])                {                    result[findNext.top()]=nums[i];                    findNext.pop();                }                if(i<nums.size())                     findNext.push(i);            }            for(int i=0;i<=nums.size()-1;i++)            {                while((!findNext.empty())&&nums[i]>nums[findNext.top()])                {                    result[findNext.top()]=nums[i];                    findNext.pop();                }            }            return result;        }    }};
0 0
原创粉丝点击