LintCode:线段树的查询
来源:互联网 发布:如何投诉淘宝卖家 编辑:程序博客网 时间:2024/06/06 01:32
LintCode:线段树的查询
"""Definition of SegmentTreeNode:class SegmentTreeNode: def __init__(self, start, end, max): self.start, self.end, self.max = start, end, max self.left, self.right = None, None"""class Solution: # @param root, start, end: The root of segment tree and # an segment / interval # @return: The maximum number in the interval [start, end] def query(self, root, start, end): # write your code here if root == None: return 0 if root.start > end or root.end < start or start > end: return 0 if root.start >= start and root.end <= end: return root.max mid = root.start + (root.end - root.start) / 2 left_max = self.query(root.left, start, min(mid, end)) right_max = self.query(root.right, max(start, mid), end) return max(left_max, right_max)
Java
/** * Definition of SegmentTreeNode: * public class SegmentTreeNode { * public int start, end, max; * public SegmentTreeNode left, right; * public SegmentTreeNode(int start, int end, int max) { * this.start = start; * this.end = end; * this.max = max * this.left = this.right = null; * } * } */public class Solution { /** *@param root, start, end: The root of segment tree and * an segment / interval *@return: The maximum number in the interval [start, end] */ public int query(SegmentTreeNode root, int start, int end) { // write your code here if(root == null){ return 0; } if(root.start > end || root.end < start || start > end){ return 0; } if(root.start >= start && root.end <= end){ return root.max; } int mid = root.start + (root.end - root.start)/2; int leftMax = query(root.left, start, Math.min(mid, end)); int rightMax = query(root.right, Math.max(start, mid), end); return Math.max(leftMax, rightMax); }}
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
- 图解TCP-IP协议
- 基于swagger做接口管理
- Android 开源项目浅读-------SwipeMenuListView-重写-第一章-手指移动事件捕获
- bzoj 1491 1491: [NOI2007]社交网络 最短路
- Linux命令技巧
- LintCode:线段树的查询
- 神经语言学中的卷积神经网络
- java 中static final用法
- Leetcode Everyday: 344. Reverse String
- JAVA004--3种循环对比,for;while;do{}while
- CentOS/RedHat和Debian/Ubuntu安装VMware Tools时无法找到kernel header path的解决方案
- 懵懵懂懂搭建数据库环境(流程主导,工作分解)
- 人见人爱A+B
- 字符串处理(库函数)