Skip to content

Commit 711d78b

Browse files
committed
Fix type annotations in next_greater_element.py
1 parent 331fe6d commit 711d78b

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

data_structures/stacks/next_greater_element.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
1+
from __future__ import annotations
2+
13
arr = [-10, -5, 0, 5, 5.1, 11, 13, 21, 3, 4, -21, -10, -5, -1, 0]
24
expect = [-5, 0, 5, 5.1, 11, 13, 21, -1, 4, -1, -10, -5, -1, 0, -1]
35

46

5-
def next_greatest_element_slow(arr: list) -> list:
7+
def next_greatest_element_slow(arr: list[float]) -> list[float]:
68
"""
79
Get the Next Greatest Element (NGE) for all elements in a list.
810
Maximum element present after the current one which is also greater than the
911
current one.
1012
>>> next_greatest_element_slow(arr) == expect
1113
True
1214
"""
15+
1316
result = []
17+
1418
for i in range(0, len(arr), 1):
15-
next = -1
19+
next: float = -1
1620
for j in range(i + 1, len(arr), 1):
1721
if arr[i] < arr[j]:
1822
next = arr[j]
@@ -21,7 +25,7 @@ def next_greatest_element_slow(arr: list) -> list:
2125
return result
2226

2327

24-
def next_greatest_element_fast(arr: list) -> list:
28+
def next_greatest_element_fast(arr: list[float]) -> list[float]:
2529
"""
2630
Like next_greatest_element_slow() but changes the loops to use
2731
enumerate() instead of range(len()) for the outer loop and
@@ -31,7 +35,7 @@ def next_greatest_element_fast(arr: list) -> list:
3135
"""
3236
result = []
3337
for i, outer in enumerate(arr):
34-
next = -1
38+
next: float = -1
3539
for inner in arr[i + 1 :]:
3640
if outer < inner:
3741
next = inner
@@ -40,7 +44,7 @@ def next_greatest_element_fast(arr: list) -> list:
4044
return result
4145

4246

43-
def next_greatest_element(arr: list) -> list:
47+
def next_greatest_element(arr: list[float]) -> list[float]:
4448
"""
4549
Get the Next Greatest Element (NGE) for all elements in a list.
4650
Maximum element present after the current one which is also greater than the
@@ -53,8 +57,8 @@ def next_greatest_element(arr: list) -> list:
5357
>>> next_greatest_element(arr) == expect
5458
True
5559
"""
56-
stack = []
57-
result = [-1] * len(arr)
60+
stack: list[float] = []
61+
result: list[float] = [-1] * len(arr)
5862

5963
for index in reversed(range(len(arr))):
6064
if len(stack):

0 commit comments

Comments
 (0)