Skip to content

Commit f69fbb8

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

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

data_structures/persistent_segment_tree.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ def __init__(self, value: int = 0) -> None:
44
self.left = None
55
self.right = None
66

7+
78
class PersistentSegmentTree:
89
def __init__(self, arr: list[int]) -> None:
910
self.n = len(arr)
@@ -13,7 +14,7 @@ def __init__(self, arr: list[int]) -> None:
1314
def _build(self, arr: list[int], start: int, end: int) -> Node:
1415
"""
1516
Builds a segment tree from the provided array.
16-
17+
1718
>>> pst = PersistentSegmentTree([1, 2, 3])
1819
>>> root = pst._build([1, 2, 3], 0, 2)
1920
>>> root.value # Sum of the whole array
@@ -31,7 +32,7 @@ def _build(self, arr: list[int], start: int, end: int) -> Node:
3132
def update(self, version: int, index: int, value: int) -> int:
3233
"""
3334
Updates the segment tree with a new value at the specified index.
34-
35+
3536
>>> pst = PersistentSegmentTree([1, 2, 3])
3637
>>> version_1 = pst.update(0, 1, 5)
3738
>>> pst.query(version_1, 0, 2) # Query sum from index 0 to 2
@@ -59,7 +60,7 @@ def _update(self, node: Node, start: int, end: int, index: int, value: int) -> N
5960
def query(self, version: int, left: int, right: int) -> int:
6061
"""
6162
Queries the sum in the given range for the specified version.
62-
63+
6364
>>> pst = PersistentSegmentTree([1, 2, 3])
6465
>>> version_1 = pst.update(0, 1, 5)
6566
>>> pst.query(version_1, 0, 1) # Query sum from index 0 to 1
@@ -75,5 +76,6 @@ def _query(self, node: Node, start: int, end: int, left: int, right: int) -> int
7576
if left <= start and right >= end:
7677
return node.value
7778
mid = (start + end) // 2
78-
return (self._query(node.left, start, mid, left, right) +
79-
self._query(node.right, mid + 1, end, left, right))
79+
return self._query(node.left, start, mid, left, right) + self._query(
80+
node.right, mid + 1, end, left, right
81+
)

0 commit comments

Comments
 (0)