File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # simple
2+ def NGLSimple (arr ):
3+ length = len (arr )
4+
5+ for i in range (0 , length ):
6+ ans = - 1
7+ for j in range (i - 1 , - 1 , - 1 ):
8+ if arr [i ] < arr [j ]:
9+ ans = arr [j ]
10+ break
11+ print (arr [i ], " - " , ans )
12+
13+
14+ class Stack :
15+ def __init__ (self ):
16+ self .stack = []
17+
18+ def push (self , element ):
19+ self .stack .append (element )
20+
21+ def isEmpty (self ):
22+ return len (self .stack ) == 0
23+
24+ def pop (self ):
25+ return self .stack .pop ()
26+
27+ def top (self ):
28+ if self .isEmpty ():
29+ return - 1
30+ return self .stack [- 1 ]
31+
32+
33+ def NGLStack (arr ):
34+ length = len (arr )
35+ s = Stack ()
36+ ans = []
37+
38+ for i in range (0 , length ):
39+ if s .isEmpty ():
40+ ans .append (- 1 )
41+ else :
42+ if s .top () > arr [i ]:
43+ ans .append (s .top ())
44+ else :
45+ while not s .isEmpty () and s .top () <= arr [i ]:
46+ s .pop ()
47+ if s .isEmpty ():
48+ ans .append (- 1 )
49+ else :
50+ ans .append (s .top ())
51+ s .push (arr [i ])
52+
53+ return ans
54+
55+
56+ def main ():
57+ arr = [1 , 3 , 2 , 4 ]
58+ NGLSimple (arr )
59+ print (NGLStack (arr ))
60+
61+
62+ if __name__ == "__main__" :
63+ main ()
Original file line number Diff line number Diff line change 1+ # simple
2+ def NGRSimple (arr ):
3+ length = len (arr )
4+
5+ for i in range (0 , length ):
6+ ans = - 1
7+ for j in range (i + 1 , length ):
8+ if arr [i ] < arr [j ]:
9+ ans = arr [j ]
10+ break
11+ print (arr [j ], "--" , ans )
12+
13+
14+ class Stack :
15+ def __init__ (self ):
16+ self .stack = []
17+
18+ def isEmpty (self ):
19+ return len (self .stack ) == 0
20+
21+ def push (self , element ):
22+ self .stack .append (element )
23+
24+ def pop (self ):
25+ if self .isEmpty ():
26+ return - 1
27+ else :
28+ return self .stack .pop ()
29+
30+ def top (self ):
31+ return self .stack [- 1 ]
32+
33+
34+ def NGRStack (arr ):
35+ s = Stack ()
36+ ans = []
37+ for i in range (len (arr ) - 1 , - 1 , - 1 ):
38+ if s .isEmpty ():
39+ ans .append (- 1 )
40+ else :
41+ if s .top () > arr [i ]:
42+ ans .append (s .top ())
43+ else :
44+ while not s .isEmpty () and s .top () <= arr [i ]:
45+ s .pop ()
46+ if s .isEmpty ():
47+ ans .append (- 1 )
48+ else :
49+ ans .append (s .top ())
50+ s .push (arr [i ])
51+ ans .reverse ()
52+ return ans
53+
54+
55+ def main ():
56+ arr = [11 , 13 , 21 , 3 ]
57+ NGRSimple (arr )
58+ print (NGRStack (arr ))
59+
60+
61+ if __name__ == "__main__" :
62+ main ()
Original file line number Diff line number Diff line change 1+ # simple
2+ def NGRSimple(arr: list):
3+ length = len(arr)
4+
5+ for i in range(0, length):
6+ ans = -1
7+ for j in range(i + 1, length):
8+ if arr[i] < arr[j]:
9+ ans = arr[j]
10+ break
11+ print(arr[j], "--", ans)
12+
13+
14+ class Stack:
15+ def __init__(self):
16+ self.stack = []
17+
18+ def isEmpty(self):
19+ return len(self.stack) == 0
20+
21+ def push(self, element):
22+ self.stack.append(element)
23+
24+ def pop(self):
25+ if self.isEmpty():
26+ return -1
27+ else:
28+ return self.stack.pop()
29+ def top(self):
30+ if self.isEmpty():
31+ return -1
32+ else:
33+ return s[-1]
34+
35+
36+ def NGRStack(arr):
37+ s = Stack()
38+ ans = []
39+ for i in range(len(arr) - 1, -1, -1):
40+ if s.isEmpty():
41+ ans.append(-1)
42+ else:
43+ if s.top() > arr[i]:
44+ ans.append(s.pop())
45+ else:
46+ while not s.isEmpty() and s.top <= arr[i]:
47+ s.pop()
48+ if s.isEmpty():
49+ ans.append(-1)
50+ else:
51+ ans.append(ans.append(s.pop()))
52+ s.push(arr[i])
53+
54+
55+ def main():
56+ arr = [11, 13, 21, 3]
57+ NGRSimple(arr)
58+ NGRStack(arr)
59+
60+
61+ if __name__ == "__main__":
62+ main()
Original file line number Diff line number Diff line change 1+ # stack
2+
3+ - Nearest Greater to Left
4+ - Nearest Greater to Right
5+ - Nearest Smaller to Left
6+ - Nearest Smaller to Right
7+ - Stock Spair Promble
8+ - Maximum Area of Histogram
9+ - Maximum Area of Rectangle binary Matrix
10+ - Rain water trapping
11+ - Implementation of Min stack
12+ - Implementation stack using heap
13+ - Program for Tower of Hanoi
14+
15+ ## resource
16+
17+ https://www.geeksforgeeks.org/stack-data-structure/
18+ https://www.youtube.com/watch?v=P1bAPZg5uaE&list=PL_z_8CaSLPWdeOezg68SKkeLN4-T_jNHd
19+
20+
You can’t perform that action at this time.
0 commit comments