Skip to content

Commit 8fabe29

Browse files
author
robot
committed
feat: 线段树
1 parent d10f05b commit 8fabe29

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

‎src/codeTemplates/segmentTree.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,10 @@ class SegmentTree:
295295
node.add = v # 做了一个标记
296296
return
297297
self.__pushdown(node) # 动态开点。为子节点赋值,这个值就从 add 传递过来
298-
self.update(l, r, v, node.left)
299-
self.update(l, r, v, node.right)
298+
if l <= node.m:
299+
self.update(l, r, v, node.left)
300+
if r > node.m:
301+
self.update(l, r, v, node.right)
300302
self.__pushup(node) # 动态开点结束后,修复当前节点的值
301303
302304
def query(self, l, r,node):
@@ -305,7 +307,12 @@ class SegmentTree:
305307
if l <= node.l and node.r <= r:
306308
return node.v
307309
self.__pushdown(node) # 动态开点。为子节点赋值,这个值就从 add 传递过来
308-
return self.query(l, r, node.left) + self.query(l, r, node.right)
310+
ans = 0
311+
if l <= node.m:
312+
ans += self.query(l, r, node.left)
313+
if r > node.m:
314+
ans += self.query(l, r, node.right)
315+
return ans
309316
310317
def __pushdown(self,node):
311318
if node.left is None:

0 commit comments

Comments
 (0)