503.下一个更大元素II
题目:力扣
class Solution {
public:
vector<int> nextGreaterElements(vector<int>& nums) {
vector<int> ans(nums.size(),-1);
stack<int> s;
for(int i = 0; i < nums.size() * 2; ++i){
while(!s.empty() && nums[i % nums.size()] > nums[s.top()]){
ans[s.top()] = nums[i % nums.size()];
s.pop();
}
s.push(i % nums.size());
}
return ans;
}
};
42. 接雨水
题目:力扣
class Solution {
public:
int trap(vector<int>& height) {
int result = 0;
stack<int> s;
s.push(0);
for(int i = 1;i < height.size(); ++i){
while(!s.empty() && height[i] > height[s.top()]){
int mid = s.top();
s.pop();
if(!s.empty()){
result += (min(height[i],height[s.top()]) - height[mid]) * (i - s.top() - 1);
}
}
s.push(i);
}
return result;
}
};
总结
题型: