当前位置:网站首页>LeetCode 715. Range module
LeetCode 715. Range module
2022-07-07 08:51:00 【Sasakihaise_】
【 Ordered interval 】 Interval splitting and merging , We need to pay attention to add If you encounter [1, 10), [10, 11] This kind should merge them , Because it is possible to query [1, 11] Such a range , So here we use floorKey Come looking for .
class RangeModule {
// Interval splitting and merging 7:21
TreeMap<Integer, Integer> map = new TreeMap();
public RangeModule() {
}
public void show() {
for (var k: map.keySet()) {
System.out.print("[" + k + "," + map.get(k) + "]");
}
System.out.println("====");
}
public void addRange(int left, int right) {
Integer key = map.floorKey(right);
while (key != null) {
int value = map.get(key);
if (value < left) {
break;
}
map.remove(key);
left = Math.min(key, left);
right = Math.max(value, right);
key = map.floorKey(right);
}
map.put(left, right);
// show();
}
public boolean queryRange(int left, int right) {
Integer key = map.floorKey(left);
if (key == null) {
return false;
}
if (map.get(key) >= right) {
return true;
}
return false;
}
public void removeRange(int left, int right) {
Integer key = map.lowerKey(right);
while (key != null) {
int value = map.get(key);
if (value <= left) {
break;
}
map.remove(key);
// key left value right
// key left right value
// left key value right
// left key right value
if (value > right) {
map.put(right, value);
}
if (key < left) {
map.put(key, left);
}
key = map.lowerKey(right);
}
// show();
}
}
/**
* Your RangeModule object will be instantiated and called as such:
* RangeModule obj = new RangeModule();
* obj.addRange(left,right);
* boolean param_2 = obj.queryRange(left,right);
* obj.removeRange(left,right);
*/
边栏推荐
- Redis summary
- POJ - 3784 running medium
- 指针进阶,字符串函数
- NCS Chengdu Xindian interview experience
- Greenplum 6.x reinitialization
- Basic data types and string types are converted to each other
- leetcode134. gas station
- All about PDF crack, a complete solution to meet all your PDF needs
- [Nanjing University] - [software analysis] course learning notes (I) -introduction
- [kuangbin] topic 15 digit DP
猜你喜欢
[Yugong series] February 2022 U3D full stack class 006 unity toolbar
IP地址的类别
Are you holding back on the publicity of the salary system for it posts such as testing, development, operation and maintenance?
Input and output of floating point data (C language)
Explain Huawei's application market in detail, and gradually reduce 32-bit package applications and strategies in 2022
快速集成认证服务-HarmonyOS平台
Calling the creation engine interface of Huawei game multimedia service returns error code 1002, error message: the params is error
Greenplum6.x搭建_环境配置
ncs成都新電面試經驗
oracle一次性说清楚,多种分隔符的一个字段拆分多行,再多行多列多种分隔符拆多行,最终处理超亿亿。。亿级别数据量
随机推荐
[hard core science popularization] working principle of dynamic loop monitoring system
[Yugong series] February 2022 U3D full stack class 006 unity toolbar
[wechat applet: cache operation]
Count sort (diagram)
测试人一定要会的技能:selenium的三种等待方式解读,清晰明了
调用华为游戏多媒体服务的创建引擎接口返回错误码1002,错误信息:the params is error
Greenplum 6.x build_ Environment configuration
GOLand idea intellij 无法输入汉字
Basic data types and string types are converted to each other
Greenplum 6.x build_ install
Nanjing commercial housing sales enabled electronic contracts, and Junzi sign assisted in the online signing and filing of housing transactions
Enterprise manager cannot connect to the database instance
NCS Chengdu New Electric interview Experience
idea里使用module项目的一个bug
go写一个在一定时间内运行的程序
如何在图片的目标中添加目标的mask
[Yu Yue education] basic reference materials of electrical and electronic technology of Nanjing Institute of information technology
Rapid integration of authentication services - harmonyos platform
[Yu Yue education] higher vocational English reference materials of Nanjing Polytechnic University
Sign and authenticate API interface or H5 interface