day40
每日温度
class Solution {
public:
vector
stack
vector
st.push(0);
for(int i = 1; i < temperatures.size(); ++i)
{
if(temperatures[i] <= temperatures[st.top()])
{
st.push(i);
}
else
{
while(!st.empty() && temperatures[i] > temperatures[st.top()])
{
answer[st.top()] = i - st.top();
st.pop();
}
st.push(i);
}
}
return answer;
}
};
下一个更大元素I
class Solution {
public:
vector
stack
vector
st.push(0);
for(int i = 1; i < temperatures.size(); ++i)
{
if(temperatures[i] <= temperatures[st.top()])
{
st.push(i);
}
else
{
while(!st.empty() && temperatures[i] > temperatures[st.top()])
{
answer[st.top()] = i - st.top();
st.pop();
}
st.push(i);
}
}
return answer;
}
};
下一个更大元素II
class Solution {
public:
vector
stack
vector<int> ret(nums.size(), -1);
if (nums.size() == 0) return ret;
st.push(0);
for(int i = 1; i < 2 * nums.size(); ++i)
{
int j = i % nums.size();
if(nums[j] <= nums[st.top()])
{
st.push(j);
}
else
{
while(!st.empty() && nums[j] > nums[st.top()])
{
ret[st.top()] = nums[j];
st.pop();
}
st.push(j);
}
}
return ret;
}
};