739. 每日温度
class Solution {
public:
vector<int> dailyTemperatures(vector<int>& temperatures) {
stack<pair<int, int>> st;
int n = temperatures.size();
vector<int> ans(n, 0);
for (int i = 0; i < n; i++) {
while (!st.empty() && st.top().first < temperatures[i]) {
auto p = st.top();
ans[p.second] = i - p.second;
st.pop();
}
st.push({temperatures[i], i});
}
return ans;
}
};
496. 下一个更大元素 I
class Solution {
public:
vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
stack<int> st;
unordered_map<int, int> umap;
for (int i = 0; i < nums2.size(); i++) {
while (!st.empty() && nums2[i] > st.top()) {
umap[st.top()] = nums2[i];
st.pop();
}
st.push(nums2[i]);
}
while (!st.empty()) {
umap[st.top()] = -1;
st.pop();
}
vector<int> ans(nums1.size(), -1);
for (int i = 0; i < nums1.size(); i++) {
ans[i] = umap[nums1[i]];
}
return ans;
}
};