From d6e352b225a0fe9f7700841bffedf834946f22ab Mon Sep 17 00:00:00 2001 From: YDZ Date: Fri, 27 Sep 2019 17:55:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/SegmentTree.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/template/SegmentTree.go b/template/SegmentTree.go index 2f81a5ff..3a7b59f7 100644 --- a/template/SegmentTree.go +++ b/template/SegmentTree.go @@ -10,7 +10,6 @@ type SegmentTree struct { // Init define func (st *SegmentTree) Init(nums []int, oper func(i, j int) int) { st.merge = oper - data, tree, lazy := make([]int, len(nums)), make([]int, 4*len(nums)), make([]int, 4*len(nums)) for i := 0; i < len(nums); i++ { data[i] = nums[i] @@ -27,8 +26,7 @@ func (st *SegmentTree) buildSegmentTree(treeIndex, left, right int) { st.tree[treeIndex] = st.data[left] return } - leftTreeIndex, rightTreeIndex := st.leftChild(treeIndex), st.rightChild(treeIndex) - midTreeIndex := left + (right-left)>>1 + midTreeIndex, leftTreeIndex, rightTreeIndex := left+(right-left)>>1, st.leftChild(treeIndex), st.rightChild(treeIndex) st.buildSegmentTree(leftTreeIndex, left, midTreeIndex) st.buildSegmentTree(rightTreeIndex, midTreeIndex+1, right) st.tree[treeIndex] = st.merge(st.tree[leftTreeIndex], st.tree[rightTreeIndex]) @@ -207,8 +205,7 @@ func (st *SegmentCountTree) buildSegmentTree(treeIndex, left, right int) { st.tree[treeIndex] = st.data[left] return } - leftTreeIndex, rightTreeIndex := st.leftChild(treeIndex), st.rightChild(treeIndex) - midTreeIndex := left + (right-left)>>1 + midTreeIndex, leftTreeIndex, rightTreeIndex := left+(right-left)>>1, st.leftChild(treeIndex), st.rightChild(treeIndex) st.buildSegmentTree(leftTreeIndex, left, midTreeIndex) st.buildSegmentTree(rightTreeIndex, midTreeIndex+1, right) st.tree[treeIndex] = st.merge(st.tree[leftTreeIndex], st.tree[rightTreeIndex])