线段树的查询-LintCode
来源:互联网 发布:网优雇佣军软件 编辑:程序博客网 时间:2024/06/08 04:36
对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0-n-1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。
为SegmentTree设计一个 query 的方法,接受3个参数root, start和end,线段树root所代表的数组中子区间[start, end]内的最大值。
注意事项:
在做此题之前,请先完成 线段树构造 这道题目。
样例:
对于数组 [1, 4, 2, 3], 对应的线段树为:
query(root, 1, 1), return 4
query(root, 1, 2), return 4
query(root, 2, 3), return 3
query(root, 0, 2), return 4
#ifndef C202_H#define C202_H#include<iostream>#include<vector>using namespace std;class SegmentTreeNode{public: int start, end, max; SegmentTreeNode *left, *right; SegmentTreeNode(int start, int end, int max) { this->start = start; this->end = end; this->max = max; this->left = this->right = NULL; }};class Solution {public: /* * @param root: The root of segment tree. * @param start: start value. * @param end: end value. * @return: The maximum number in the interval [start, end] */ int query(SegmentTreeNode * root, int start, int end) { // write your code here if (start > end||start<root->start||end>root->end) return 0; SegmentTreeNode *node = root; if (start == node->start&&end == node->end) return node->max; if (end <= node->left->end) return query(node->left, start, end); else if (start >= node->right->start) return query(node->right, start, end); else { return maxVal(query(node->left, start, node->left->end), query(node->right, node->right->start, end)); } } int maxVal(int a, int b) { return a > b ? a : b; }};#endif
阅读全文
0 0
- LintCode:线段树的查询
- 线段树的查询-LintCode
- lintcode-线段树的查询-202
- LintCode:线段树的查询II
- 线段树查询 II-LintCode
- [LintCode]Segment Tree Query 线段树的查询
- lintcode segment-tree-query 线段树的查询
- lintcode-线段树查询II-247
- lintcode(247)线段树查询 II
- LintCode:线段树的构造
- LintCode:线段树的修改
- lintcode线段树的应用
- lintcode -- 线段树的构造
- 线段树的构造-LintCode
- 线段树的修改-LintCode
- LintCode线段树/扫描线/查询题总结
- lintcode-线段树的构造-201
- lintcode-线段树的修改-203
- react Can’t find variable
- 我要学习!!!!!
- RandForest(sklearn)参数详解
- 迁移学习
- 大型网站架构系列:分布式消息队列(一)
- 线段树的查询-LintCode
- zookeeper完全分布式搭建---linux权限的问题
- 在页面显示当前时间
- AndroidStudio 下使用AIDL不能生成对应java文件
- 大数据早报:武汉大学联手百度共建人工智能图书馆;美中情局研发人工智能收集情报(9.10)
- 20170911日记账流水(2017-09-11)
- 树梅派-控制蜂鸣器鸣响脚本(python)
- eclipse中.properties文件不能输入中文
- cocos2dx 屏幕适配