class Solution {
public:
vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
vector<int> result;
unordered_map<int, int> list;
for(int i = 0; i < nums.size(); ++i){
list.insert(unordered_map<int, int>::value_type(nums[i], i));
}
for(int j = 0; j < findNums.size(); ++j){
unordered_map<int, int>::iterator p = list.find(findNums[j]);
// if(p != list.end()) //已知必存在
// int index = p->second;
// else{
// result.push_back(-1);
int index = p->second;
bool flag = 0;
for(int k = index+1; k < nums.size(); ++k){
if(nums[k] > findNums[j]){
result.push_back(nums[k]);
flag = 1;
break;
}
}
if(flag == 0)
result.push_back(-1);
}
return result;
}
};
一次写成
Runtime: 12 ms, faster than 100.00% of C++ online submissions for Next Greater Element I.