Skip to content

Commit 0c15d44

Browse files
committed
Refactor next_greater_element.py
1 parent 711d78b commit 0c15d44

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

Diff for: data_structures/stacks/next_greater_element.py

+9-10
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ def next_greatest_element_slow(arr: list[float]) -> list[float]:
1414
"""
1515

1616
result = []
17+
arr_size = len(arr)
1718

18-
for i in range(0, len(arr), 1):
19+
for i in range(arr_size):
1920
next: float = -1
20-
for j in range(i + 1, len(arr), 1):
21+
for j in range(i + 1, arr_size):
2122
if arr[i] < arr[j]:
2223
next = arr[j]
2324
break
@@ -57,21 +58,19 @@ def next_greatest_element(arr: list[float]) -> list[float]:
5758
>>> next_greatest_element(arr) == expect
5859
True
5960
"""
61+
arr_size = len(arr)
6062
stack: list[float] = []
61-
result: list[float] = [-1] * len(arr)
63+
result: list[float] = [-1] * arr_size
6264

63-
for index in reversed(range(len(arr))):
64-
if len(stack):
65+
for index in reversed(range(arr_size)):
66+
if stack:
6567
while stack[-1] <= arr[index]:
6668
stack.pop()
67-
if len(stack) == 0:
69+
if not stack:
6870
break
69-
70-
if len(stack) != 0:
71+
if stack:
7172
result[index] = stack[-1]
72-
7373
stack.append(arr[index])
74-
7574
return result
7675

7776

0 commit comments

Comments
 (0)