n个整数的无序数组,找到每个元素后面比它大的第一个数
程序员文章站
2024-03-15 18:58:42
...
要求时间复杂度为O(N)
vector<int> findMax(vector<int>num)
{
if(num.size() == 0) return num;
vector<int> res(num.size());
int i = 0;
stack<int> s;
while(i < num.size())
{
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<res.size(); i++)
{
cout<<res[i]<<endl;
return res;
}
}