线段树
stevewongbuaa
这个作者很懒,什么都没留下…
展开
-
lintcode线段树的应用
问题描述lintcode区间最小数笔记个人感觉,线段树就是可以将数据拆分成小区间的统计结果,如果需要大量的区间查询,可以使用线段树。代码/** * Definition of Interval: * classs Interval { * int start, end; * Interval(int start, int end) { * this->sta原创 2016-07-22 07:56:29 · 340 阅读 · 0 评论 -
lintcode segment-tree-build 线段树的构造
问题描述lintcode笔记把中间点算出来,然后使用递归构造。要注意start > end的情况。代码/** * Definition of SegmentTreeNode: * class SegmentTreeNode { * public: * int start, end; * SegmentTreeNode *left, *right; * Segmen原创 2016-07-21 15:50:36 · 476 阅读 · 0 评论 -
lintcode segment-tree-query 线段树的查询
问题描述lintcode笔记假设对于root来说的中间分界点为rmid=(rstart+rend)/2,关键是要找到start、end和中间分界点rmid的关系以及相应的处理方法。 如果start和end都小于等于rmid,那就在root->left那边继续查询 如果start 和 end 都大于rmid, 那就在 root->right 那边继续查询 如果start 小于等于 rmid 且 end原创 2016-07-21 15:59:15 · 460 阅读 · 0 评论 -
lintcode segment-tree-modify 线段树的修改
问题描述lintcode笔记比较左孩子的end与index,如果index<=root->left->end说明index在左子树,那就递归修改左子树,否则递归修改右子树。最后把root的max值更新。代码/** * Definition of SegmentTreeNode: * class SegmentTreeNode { * public: * int start, end,原创 2016-07-21 17:14:45 · 528 阅读 · 0 评论