Java code using stack


#1

Comment body goes here.public class Solution { public ArrayList<Integer> prevSmaller(ArrayList<Integer> A) { Stack<Integer> st=new Stack<>(); ArrayList ans=new ArrayList(); for(int i=0;i<A.size();i++) { if(st.size()==0) ans.add(-1); else if(st.size()>0 && st.peek()<A.get(i)) ans.add(st.peek()); else if(st.size()>0 && st.peek()>=A.get(i)) { while(st.size()>0 && st.peek()>=A.get(i)) { st.pop(); } if(st.size()==0) ans.add(-1); else ans.add(st.peek()); } st.push(A.get(i)); } return ans; } }