class Solution {
public:
vector<int> dailyTemperatures(vector<int>& t) {
vector<int> ans;
stack<int> s;
int n=t.size();
for(int i=n-1;i>=0;i--)
{
if(s.empty())
{
s.push(i);
ans.push_back(0);
}
else
{
while(!s.empty() && t[s.top()]<=t[i])
{
s.pop();
}
if(s.empty())
{
s.push(i);
ans.push_back(0);
}
else if(!s.empty()&&t[s.top()]>t[i])
{
ans.push_back(s.top()-i);
s.push(i);
}
}
}
reverse(ans.begin(),ans.end());
return ans;
}
};