LeetCode - OrderMap - 715.Range模块
题目 715.Range模块
难度 困难
解法
class RangeModule {TreeSet<Interval> ranges;public RangeModule() {ranges = new TreeSet();}public void addRange(int left, int right) {Iterator<Interval> itr = ranges.tailSet(new Interval(0, left - 1)).iterator();while (itr.hasNext()) {Interval iv = itr.next();if (right < iv.left) break;left = Math.min(left, iv.left);right = Math.max(right, iv.right);itr.remove();}ranges.add(new Interval(left, right));}public boolean queryRange(int left, int right) {Interval iv = ranges.higher(new Interval(0, left));return (iv != null && iv.left <= left && right <= iv.right);}public void removeRange(int left, int right) {Iterator<Interval> itr = ranges.tailSet(new Interval(0, left)).iterator();ArrayList<Interval> todo = new ArrayList();while (itr.hasNext()) {Interval iv = itr.next();if (right < iv.left) break;if (iv.left < left) todo.add(new Interval(iv.left, left));if (right < iv.right) todo.add(new Interval(right, iv.right));itr.remove();}for (Interval iv: todo) ranges.add(iv);}
}class Interval implements Comparable<Interval>{int left;int right;public Interval(int left, int right){this.left = left;this.right = right;}public int compareTo(Interval that){if (this.right == that.right) return this.left - that.left;return this.right - that.right;}
}
LeetCode - OrderMap - 715.Range模块相关推荐
- leetcode:715. Range 模块【无脑segmentTree】
分析 线段树区间更新 + 区间求和即可 ac code from functools import reduceclass SegTree:'''支持增量更新,覆盖更新,序列更新,任意RMQ操作基于二 ...
- Java实现 LeetCode 715 Range 模块(选范围)
715. Range 模块 Range 模块是跟踪数字范围的模块.你的任务是以一种有效的方式设计和实现以下接口. addRange(int left, int right) 添加半开区间 [left, ...
- LeetCode 715. Range 模块
715. Range 模块 [有序集合]用TreeMap来进行有序集合的合并和拆分 class RangeModule {// 区间拆分与合并 9:34 10:31TreeMap<Integer ...
- 【宫水三叶的刷题日记】715. Range 模块
题目描述 这是 LeetCode 上的 715. Range 模块 ,难度为 困难. Tag : 「线段树」.「线段树(动态开点)」 Range 模块是跟踪数字范围的模块.设计一个数据结构来跟踪表示为 ...
- 715. Range 模块
Range 模块是跟踪数字范围的模块.你的任务是以一种有效的方式设计和实现以下接口. addRange(int left, int right) 添加半开区间 [left, right),跟踪该区间中 ...
- boost::range模块heap算法相关的测试程序
boost::range模块heap算法相关的测试程序 实现功能 C++实现代码 实现功能 boost::range模块heap算法相关的测试程序 C++实现代码 #include <boost ...
- boost::range模块uniqued相关的测试程序
boost::range模块uniqued相关的测试程序 实现功能 C++实现代码 实现功能 boost::range模块uniqued相关的测试程序 C++实现代码 #include <boo ...
- boost::range模块transformed相关的测试程序
boost::range模块transformed相关的测试程序 实现功能 C++实现代码 实现功能 boost::range模块transformed相关的测试程序 C++实现代码 #include ...
- boost::range模块tokenized相关的测试程序
boost::range模块tokenized相关的测试程序 实现功能 C++实现代码 实现功能 boost::range模块tokenized相关的测试程序 C++实现代码 #include < ...
最新文章
- android file mkdir,android file.mkdir()一直返回false问题
- 你在 Docker 中跑 MySQL?恭喜你,可以下岗了!
- java中的接口中的方法
- LeetCode Shell 192. 统计词频
- java 捕获特定异常_java – 使用特定消息捕获异常
- 【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细
- spring-boot actuator(监控)配置和使用
- 剑指offer(C++)-JZ8:二叉树的下一个结点(数据结构-树)
- 《Unity3D脚本编程与游戏开发》学习Day one
- socket编程之服务器端与客户端(代码实例)
- entware mysql 5.5_分享包--K3 基于 entware 构建 debian+宝塔面板+nginx+php+mysql 备份包
- 三维空间坐标系变换——旋转矩阵
- 2×3卡方检验prism_SPSS之卡方检验
- 【转载】为什么用交叉线而不是直通线连接相同的设备
- 1)华为手机使用电脑批量管理联系人 - 2)华为云空间联系人同步到手机 - 3)华为手机导入联系人列表
- unity xml反序列化为数据类
- 桌球java_java实现一个桌球小游戏
- Latex 数学符号和公式模板整理
- 正则表达式提取字符串全部汉字或者全部英文
- 了解python正则表达式