O(n) c++ solution!


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

}