摘要: "203 线段树的修改" 对于一棵 最大线段树, 每个节点包含一个额外的 max 属性,用于存储该节点所代表区间的最大值。 设计一个 modify 的方法,接受三个参数 root、 index 和 value。该方法将 root 为跟的线段树中 [start, end] = [index, inde 阅读全文
posted @ 2017-08-07 21:16 LiBaoquan 阅读(281) 评论(0) 推荐(0) 编辑
摘要: "202 线段树的查询" 对于一个有n个数的整数数组,在对应的线段树中, 根节点所代表的区间为0 n 1, 每个节点有一个额外的属性max,值为该节点所代表的数组区间start到end内的最大值。 为SegmentTree设计一个 query 的方法,接受3个参数root, start和end,线段 阅读全文
posted @ 2017-08-07 20:55 LiBaoquan 阅读(332) 评论(0) 推荐(0) 编辑
摘要: "201 线段树的构造" 线段树是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。start和end都是整数,并按照如下的方式赋值: 根节点的 start 和 end 由 build 方法所给出。 对于节点 A 的左儿子,有 start=A.left, en 阅读全文
posted @ 2017-08-07 18:58 LiBaoquan 阅读(296) 评论(0) 推荐(0) 编辑
摘要: "198 排列序号II" 给出一个可能包含重复数字的排列,求这些数字的所有排列按字典序排序后该排列在其中的编号。编号从1开始。 样例 给出排列[1, 4, 2, 2],其编号为3。 思路 和 "lintcode 197 排列序号" 不同的是,这里的排序序列包含重复数字,所以需要排除重复排列。 在 " 阅读全文
posted @ 2017-08-07 14:33 LiBaoquan 阅读(818) 评论(0) 推荐(0) 编辑
摘要: "197 排列序号" 给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。 样例 例如,排列 [1,2,4] 是第 1 个排列。 思路 参考 "http://www.cnblogs.com/hujunzheng/p/5020211.html" 首先观察一个 阅读全文
posted @ 2017-08-07 13:41 LiBaoquan 阅读(629) 评论(0) 推荐(1) 编辑