第一次暴力破解
超时了
参考了官方的解法:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include<unordered_set>
#include<set>
#include<map>
using namespace std;
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
int len1=nums1.size();
int len2=nums2.size();
vector<int> res(len1);
for(int i=0;i<len1;i++)
{
int j=0;
while(j<len2&&nums1[i]!=nums2[j])
{j++;}
int n=j+1;
while(n<len2&&nums2[n]<nums1[i])
{
n++;
}
res[i]=n<len2?nums2[n]:-1;
}
return res;
}
};
int main()
{
int len1,len2;
vector<int> nums1;
vector<int> nums2;
int x,y;
while (cin>>x) //当输入符合,则一直循环
{
nums1.push_back(x);
if (getchar() == '\n')//遇到回车,跳出循环
break;
}
while (cin>>y)
{
nums2.push_back(y);
if (getchar() == '\n')
break;
}
vector<int> res=Solution().nextGreaterElement(nums1,nums2);
for(int i=0; i<res.size(); i++)
{
if(i!=res.size()-1)
cout<<res[i]<<' ';
else cout<<res[i];
}
}