Easy Java code using Stack


#1

public ArrayList prevSmaller(ArrayList A) {
Stack s=new Stack<>();
s.push(A.get(0));
ArrayList ans=new ArrayList<>();
ans.add(-1);
for(int i=1;i<A.size();i++)
{
while(!s.isEmpty() && A.get(i)<=s.peek())
s.pop();
if(s.isEmpty())
ans.add(-1);
else
ans.add(s.peek());
s.push(A.get(i));
}
return ans;
}