n个整数的无序数组,找到每个元素后面比它大的第一个数,要求时间复杂度为O(N)

vector findMax(vectornum)
{
if(num.size()==0)return num;
vectorres(num.size());
int i=0;
stacks;
while(i {
if(s.empty()||num[s.top()]>=num[i]) //将不符合要求的下标先保存在栈中
{
s.push(i++);
}
else
{
res[s.top()]=num[i]; //符合要求的,保存在容器中,并弹出下标
s.pop();
}
}
while(!s.empty())
{
res[s.top()]=INT_MAX;
s.pop();
}
for(int i=0; i cout< return res;
}

你可能感兴趣的:(n个整数的无序数组,找到每个元素后面比它大的第一个数,要求时间复杂度为O(N))