# 力扣第49天— 第503题、第42题
跟之前的题很像。收尾相连、或者成环的循环,用取模的操作模拟。
class Solution {
public:
vector nextGreaterElements(vector& nums) {
stack st;
vector result(nums.size(), -1);
st.push(0);
for(int j=1; j < nums.size()*2; ++j){
int i = j % nums.size();
if(nums[i] <= nums[st.top()]) st.push(i);
else{
while(!st.empty() && nums[i]> nums[st.top()]) {
result[st.top()] = nums[i];
st.pop();
}
st.push(i);
}
}
return result;
}
};
常考的题,困难难度。有些费劲,但还可以。
class Solution {
public:
int trap(vector& height) {
int sum = 0;
stack st;
st.push(0);
for(int i = 1; i height[st.top()]){
int mid = st.top();
cout << i<< '-'<< mid <<'-'<< sum <