LeetCode 2454. 下一个更大元素 IV
原题链接
困难
作者:
我是java同学
,
2023-12-12 14:32:09
,
所有人可见
,
阅读 47
class Solution {
public:
typedef pair<int, int> PII;
vector<int> secondGreaterElement(vector<int>& nums) {
int n = nums.size();
vector<int> res(n, -1);
vector<PII> a(n);
for (int i = 0; i < n; i ++ )
a[i] = {-nums[i], i};//第一关键字只用来排序用
sort(a.begin(), a.end());
set<int> S;
for (auto& [_, i]: a) {
auto it = S.upper_bound(i);
if (it != S.end() && S.upper_bound(*it) != S.end()) {
res[i] = nums[*S.upper_bound(*it)];
}
S.insert(i);
}
return res;
}
};