496. 下一个更大元素 I
解法一:暴力hash
//cpp
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums) {
unordered_map<int, int> hash;
for (int i = 0; i < nums.size(); i++) {
hash[nums[i]] = i;//建立hash映射
}
for (int i = 0; i < findNums.size(); i++) {
int index = hash[findNums[i]];
int j;
for (j = index+1; j < nums.size(); j++) {
if (nums[j] > nums[index]) {
findNums[i] = nums[j];
break;//找到就立即跳出本层循环
}
}
if (j >= nums.size()) findNums[i] = -1;//若没找到,则为-1
}
return findNums;
}
};解法二:栈+hash
解法三:单调栈
最后更新于