Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Mar 1, 2025
1 parent ac76a04 commit 280bc4f
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions searches/segment_tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
Query both the children and add their results and return that
"""


class SegmentTree:
def __init__(self, arr, merge_func, default):
"""
Expand All @@ -95,7 +96,7 @@ def __init__(self, arr, merge_func, default):
self.n = len(arr)

# while self.n is not a power of two
while (self.n & (self.n-1)) != 0:
while (self.n & (self.n - 1)) != 0:
self.n += 1
self.arr.append(default)

Expand All @@ -107,8 +108,9 @@ def __init__(self, arr, merge_func, default):
self.segment_tree[self.n + i] = arr[i]

for i in range(self.n - 1, 0, -1):
self.segment_tree[i] = self.merge_func(self.segment_tree[2 * i],
self.segment_tree[2 * i + 1])
self.segment_tree[i] = self.merge_func(
self.segment_tree[2 * i], self.segment_tree[2 * i + 1]
)

def update(self, index, value):
"""
Expand All @@ -118,8 +120,9 @@ def update(self, index, value):

while index >= 1:
index //= 2 # Go to the parent of index
self.segment_tree[index] = self.merge_func(self.segment_tree[2 * index],
self.segment_tree[2 * index + 1])
self.segment_tree[index] = self.merge_func(
self.segment_tree[2 * index], self.segment_tree[2 * index + 1]
)

def query(self, left, right, node_index=1, node_left=0, node_right=None):
"""
Expand All @@ -146,5 +149,5 @@ def query(self, left, right, node_index=1, node_left=0, node_right=None):
# of the query values of both the children nodes
return self.merge_func(
self.query(left, right, node_index * 2, node_left, mid),
self.query(left, right, node_index * 2 + 1, mid + 1, node_right)
self.query(left, right, node_index * 2 + 1, mid + 1, node_right),
)

0 comments on commit 280bc4f

Please # to comment.