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();
}
return res;
}
找出数组中每个数的右边第一个比它大的数
最新推荐文章于 2024-09-25 09:19:01 发布