现在有一个数组,请找出数组中每个元素的后面比它大的最小的元素,若不存在则为-1。
给定一个int数组A及数组的大小n,请返回每个元素所求的值组成的数组。保证A中元素为正整数,且n小于等于1000。
测试样例:
[11,13,10,5,12,21,3],7
[12,21,12,12,21,-1,-1]
class NextElement {
public:
vector<int> findNext(vector<int> A,int n) {
//将该vector中元素全部置为-1
vector<int>ve(n,-1);
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(A[i]<A[j])
{
if(ve[i]==-1)
{
ve[i]=A[j];
}else{
ve[i]=min(ve[i],A[j]);
}
}
}
}
return ve;
}
};