Short And Easy Solution (C++)


#1

vector Solution::prevSmaller(vector &A) {
vector ans;
stack s;
s.push(0);
ans.push_back(-1);
for(int i=1;i<A.size();i++){
while(!s.empty() && A[s.top()]>=A[i])
s.pop();
if(s.empty())
ans.push_back(-1);
else
ans.push_back(A[s.top()]);
s.push(i);
}
return ans;
}