摘要: 对于一棵 最大线段树, 每个节点包含一个额外的 max 属性,用于存储该节点所代表区间的最大值。 设计一个 modify 的方法,接受三个参数 root、 index 和 value。该方法将 root 为跟的线段树中 [start, end] = [index, index] 的节点修改为了新的  阅读全文
posted @ 2017-06-27 22:46 静悟生慧 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值: 根节点的 start 和 end 由 build 方法所给出。 对于节点 A 的左儿子,有 start=A.left, end=(A.left + A 阅读全文
posted @ 2017-06-27 16:27 静悟生慧 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。 为SegmentTree设计一个 query 的方法,接受3个参数root, start和end,线段树root所代表的数组中子 阅读全文
posted @ 2017-06-27 15:58 静悟生慧 阅读(2689) 评论(0) 推荐(0) 编辑
摘要: 对于一个数组,我们可以对其建立一棵 线段树, 每个结点存储一个额外的值 count 来代表这个结点所指代的数组区间内的元素个数. (数组中并不一定每个位置上都有元素) 实现一个 query 的方法,该方法接受三个参数 root, start 和 end, 分别代表线段树的根节点和需要查询的区间,找到 阅读全文
posted @ 2017-06-27 15:29 静悟生慧 阅读(1810) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/metalseed/article/details/8039326 一:线段树基本概念 1:概述 线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能 阅读全文
posted @ 2017-06-27 10:17 静悟生慧 阅读(304) 评论(0) 推荐(0) 编辑