题目解析:
按照题目意思做就好了,先定义一个hash,存储nums的坐标,然后按照找后面第一个比fundnums大的元素,就好了。
代码:
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
long len = nums.size();
vector<int> ret;
unordered_map<int, int> mp;
for(int i = 0; i < len; i++){
mp[nums[i]] = i;
}
for(int i = 0; i < findNums.size(); i++){
int index = mp[findNums[i]] + 1;
while(index < len && nums[index] < findNums[i]) index++;
if(index < len)
ret.push_back(nums[index]);
else
ret.push_back(-1);
}
return ret;
}
};