Advertisement
Iam_Sandeep

Find left immediate greater and right immediate greater for every element in array

Jul 31st, 2022
1,369
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.39 KB | None | 0 0
  1. from collections import deque
  2. def find(a):
  3.     q=deque()
  4.     n=len(a)
  5.     pre,pos=[-1]*n,[n]*n
  6.     for i,val in enumerate(a):
  7.         while q and a[q[-1]]<=val:#top<=cur decreasing stack
  8.             idx=q.pop()
  9.             pos[idx]=i
  10.         if q:
  11.             pre[i]=q[-1]
  12.         q.append(i)#This I forget always Keep remember this
  13.     print(pre,pos)
  14. a=[10, 4, 2, 20, 40, 12, 30]
  15. find(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement