26 lines
499 B
Ruby
26 lines
499 B
Ruby
|
#Given an array of integers,print the next greatest element for each of the element
|
||
|
#Time-complexity:O(n),Auxiliary-space:O(n){stack}
|
||
|
|
||
|
|
||
|
def find_nge(a)
|
||
|
stk=[]
|
||
|
top=-1
|
||
|
for i in 0...a.length
|
||
|
while(top>-1 && stk[top]<a[i])
|
||
|
puts "#{stk[top]} -> #{a[i]}"
|
||
|
stk.pop()
|
||
|
top-=1
|
||
|
end
|
||
|
|
||
|
stk.push(a[i])
|
||
|
top+=1
|
||
|
end
|
||
|
while top>-1
|
||
|
puts "#{stk[top]} -> #{-1}"
|
||
|
top-=1
|
||
|
end
|
||
|
end
|
||
|
|
||
|
find_nge([23,12,56,22,6,34])
|
||
|
|