Skip to content

Commit bcd9f5d

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 9e07fc9 commit bcd9f5d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

data_structures/persistent_segment_tree.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
from __future__ import annotations
22

3+
34
class Node:
45
def __init__(self, value: int = 0) -> None:
56
self.value: int = value
67
self.left: Node | None = None
78
self.right: Node | None = None
89

10+
911
class PersistentSegmentTree:
1012
def __init__(self, arr: list[int]) -> None:
1113
self.n: int = len(arr)
@@ -81,7 +83,9 @@ def _update(self, node: Node, start: int, end: int, index: int, value: int) -> N
8183
new_node.left = node.left # Ensure left node is the same as the original
8284
new_node.right = self._update(node.right, mid + 1, end, index, value)
8385

84-
new_node.value = new_node.left.value + (new_node.right.value if new_node.right else 0)
86+
new_node.value = new_node.left.value + (
87+
new_node.right.value if new_node.right else 0
88+
)
8589

8690
return new_node
8791

@@ -120,12 +124,15 @@ def _query(self, node: Node, start: int, end: int, left: int, right: int) -> int
120124
if left <= start and right >= end:
121125
return node.value
122126
mid = (start + end) // 2
123-
return (self._query(node.left, start, mid, left, right) +
124-
self._query(node.right, mid + 1, end, left, right))
127+
return self._query(node.left, start, mid, left, right) + self._query(
128+
node.right, mid + 1, end, left, right
129+
)
130+
125131

126132
# Running the doctests
127133
if __name__ == "__main__":
128134
import doctest
135+
129136
print("Running doctests...")
130137
result = doctest.testmod()
131138
print(f"Ran {result.attempted} tests, {result.failed} failed.")

0 commit comments

Comments
 (0)