Skip to content

Commit 052f408

Browse files
committed
added static typing to lazy_segment_tree.py
1 parent 039cdb3 commit 052f408

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

data_structures/binary_tree/lazy_segment_tree.py

+14-10
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,23 @@
22

33

44
class SegmentTree:
5-
def __init__(self, N):
5+
def __init__(self, N: int) -> None:
66
self.N = N
7-
self.st = [
7+
self.st: List[int] = [
88
0 for i in range(0, 4 * N)
99
] # approximate the overall size of segment tree with array N
10-
self.lazy = [0 for i in range(0, 4 * N)] # create array to store lazy update
11-
self.flag = [0 for i in range(0, 4 * N)] # flag for lazy update
10+
self.lazy: List[int] = [
11+
0 for i in range(0, 4 * N)
12+
] # create array to store lazy update
13+
self.flag: List[int] = [0 for i in range(0, 4 * N)] # flag for lazy update
1214

13-
def left(self, idx):
15+
def left(self, idx: int) -> int:
1416
return idx * 2
1517

16-
def right(self, idx):
18+
def right(self, idx: int) -> int:
1719
return idx * 2 + 1
1820

19-
def build(self, idx, l, r, A): # noqa: E741
21+
def build(self, idx: int, l: int, r: int, A: List[int]) -> None: # noqa: E741
2022
if l == r: # noqa: E741
2123
self.st[idx] = A[l - 1]
2224
else:
@@ -27,7 +29,9 @@ def build(self, idx, l, r, A): # noqa: E741
2729

2830
# update with O(lg N) (Normal segment tree without lazy update will take O(Nlg N)
2931
# for each update)
30-
def update(self, idx, l, r, a, b, val): # noqa: E741
32+
def update(
33+
self, idx: int, l: int, r: int, a: int, b: int, val: int
34+
) -> bool: # noqa: E741
3135
"""
3236
update(1, 1, N, a, b, v) for update val v to [a,b]
3337
"""
@@ -57,7 +61,7 @@ def update(self, idx, l, r, a, b, val): # noqa: E741
5761
return True
5862

5963
# query with O(lg N)
60-
def query(self, idx, l, r, a, b): # noqa: E741
64+
def query(self, idx: int, l: int, r: int, a: int, b: int) -> int: # noqa: E741
6165
"""
6266
query(1, 1, N, a, b) for query max of [a,b]
6367
"""
@@ -78,7 +82,7 @@ def query(self, idx, l, r, a, b): # noqa: E741
7882
q2 = self.query(self.right(idx), mid + 1, r, a, b)
7983
return max(q1, q2)
8084

81-
def showData(self):
85+
def showData(self) -> None:
8286
showList = []
8387
for i in range(1, N + 1):
8488
showList += [self.query(1, 1, self.N, i, i)]

0 commit comments

Comments
 (0)