Greater elements in left using stack
function next_greater_left(arr)
{
var v = [];
var s = [];
for(var i = 0; i < arr.length; i++)
{
if(s.length == 0)
{
v.push(-1);
}
else if(s.length > 0 && s[s.length - 1] > arr[i])
{
v.push(s[s.length - 1]);
}
else if(s.length > 0 && s[s.length - 1] <= arr[i])
{
while(s.length > 0 && s[s.length - 1] <= arr[i])
{
s.pop();
}
if(s.length == 0)
{
v.push(-1);
}
else
{
v.push(s[s.length - 1]);
}
}
s.push(arr[i]);
}
return v;
}