1- class Node () :
1+ class Node :
22 def __init__ (self , start : int , end : int ) -> None :
33 # Initializes a segment tree node with start and end indices
44 self .start = start
@@ -7,8 +7,9 @@ def __init__(self, start: int, end: int) -> None:
77 self .left = None
88 self .right = None
99
10- class SegmentTree ():
11- def __init__ (self , nums : list [int ], mode : str = 'max' ) -> None :
10+
11+ class SegmentTree :
12+ def __init__ (self , nums : list [int ], mode : str = "max" ) -> None :
1213 """
1314 Initializes the Segment Tree.
1415 :param nums: List of integers to build the tree from.
@@ -78,7 +79,9 @@ def sum_in_range(self, start_index: int, end_index: int) -> int:
7879
7980 return self .query (self .root , start_index , end_index , 0 , self .size - 1 )
8081
81- def query (self , node : Node , start_index : int , end_index : int , start : int , end : int ) -> int :
82+ def query (
83+ self , node : Node , start_index : int , end_index : int , start : int , end : int
84+ ) -> int :
8285 """
8386 Recursively queries a value (max or sum) in a given range.
8487 :param node: Current node in the tree.
@@ -123,7 +126,9 @@ def update(self, index: int, new_value: int) -> int:
123126
124127 self .modify (self .root , index , new_value , 0 , self .size - 1 )
125128
126- def modify (self , node : Node , index : int , new_value : int , start : int , end : int ) -> int :
129+ def modify (
130+ self , node : Node , index : int , new_value : int , start : int , end : int
131+ ) -> int :
127132 """
128133 Recursively updates the tree to reflect a change at a specific index.
129134 :param node: Current node being processed.
@@ -147,4 +152,4 @@ def modify(self, node: Node, index: int, new_value: int, start: int, end: int) -
147152 if self .mode == "max" :
148153 node .value = max (node .left .value , node .right .value )
149154 else :
150- node .value = node .left .value + node .right .value
155+ node .value = node .left .value + node .right .value
0 commit comments