九章算法 | Coupang面试题:范围模块

描述范围模块是跟踪数字范围的模块。 您的任务是以有效的方式设计和实现以下接口。addRange(int left,int right): 添加左闭右开[left,right)的区间,跟踪区间中的每个实数。 如果添加的区间里与已经跟踪的实数部分重合,那么就把区间内没有跟踪的实数也加进去。queryRange(int left,int right): 当且仅当当前[left,right)中的每个实数都被跟踪时,返回true。removeRange(int left,int right): 停止跟踪[l
摘要由CSDN通过智能技术生成

描述

范围模块是跟踪数字范围的模块。 您的任务是以有效的方式设计和实现以下接口。

  • addRange(int left,int right): 添加左闭右开[left,right)的区间,跟踪区间中的每个实数。 如果添加的区间里与已经跟踪的实数部分重合,那么就把区间内没有跟踪的实数也加进去。
  • queryRange(int left,int right): 当且仅当当前[left,right)中的每个实数都被跟踪时,返回true。
  • removeRange(int left,int right): 停止跟踪[left,right)区间内当前已经跟踪的每个实数。
  • 一个左闭右开的区间 [left, right) 包含了 left <= x < right范围内所有的实数.
  • 函数 addRange, queryRange, removeRange中参数的取值范围为0 < left < right < 10^9.
  • 测试样例中调用addRange的次数最多为 1000.
  • 测试样例中调用queryRange 的次数最多为5000.
  • 测试样例中调用removeRange的次数最多为 1000.

在线评测地址

样例1

输入:
addRange(10,20)
removeRange(14,16)
queryRange(10,14)
queryRange(13,15)
queryRange(16,17)

输出: [true,false,true]
说明:
[10, 14)里的所有数字有已被跟踪
一些数字,例如:14, 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值