码迷,mamicode.com
首页 > 其他好文 > 详细

Lintcode202 Segment Tree Query solution 题解

时间:2018-02-15 20:58:48      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:最小值   com   构建   线段   应该   blog   完成   www.   node   

【题目描述】

For an integer array (index from 0 to n-1, where n is the size of this array), in the corresponding Segment Tree, each node stores an extra attribute max to denote the maximum number in the interval of the array (index from start to end).

 

对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。

 

为Segment Tree设计一个query的方法,接受3个参数root,start和end,线段树root所代表的数组中子区间[start, end]内的最大值。

 

【注】在做此题之前,请先完成线段树构造这道题目。

 

【题目链接】

 

www.lintcode.com/en/problem/segment-tree-query/

 

【题目解析】

 

这应该是Range Query的经典题目之一了。

 

此题可用Segment Tree来做的。 Segment Tree线段树每一个节点都是一段线段,有start和end,然后还可以有其他的值,比如区间和sum,区间最大值max,区间最小值min。我们可以用自底向上构建二叉树的方式构建Segment Tree,这个过程也有点类似于Bottom-up的merge sort,思想也是Divide and Conquer。完毕之后就可以在O(logn)的时间update,或者得到range Sum。

 

【参考答案】

 

www.jiuzhang.com/solutions/segment-tree-query/

Lintcode202 Segment Tree Query solution 题解

标签:最小值   com   构建   线段   应该   blog   完成   www.   node   

原文地址:https://www.cnblogs.com/5245a/p/8449787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!