1
.问题描述
给定一个包含若干个区间的
List
数组,长度是
1000
,如
[500
,
1500]
、
[2100
,
3100]
。给定一个
number
,判断
number
是否在这些区间
内,返回
True
或
False
。
2
.问题示例
输入是
List=[[100
,
1100]
,
[1000
,
2000]
,
[5500
,
6500]]
和
number=6000
,输出是
True
,因为
6000
在区间
[5500
,
6500]
。输入是
List=[[100
,
1100]
,
[2000
,
3000]]
和
number=3500
,输出是
False
,因为
3500
不在
List
的任何一个区间中。
3
.代码实现
class Solution:
def answer(self,list_s,number):
high = len(list_s) - 1
low = 0
while high >= low:
if 0 < (number - list_s[(high + low)//2][0]) <= 1000:
return "True"
elif (number - list_s[(high + low)//2][0]) > 1000:
low = low + 1
elif (number - list_s[(high + low)//2][0]) < 0:
high = high - 1
return "False"
if __name__ == "__main__":
number = 6000
list_s = [[100,1100],[1000,2000],[5500,6500]]
s = Solution()
print(s.answer(list_s,number))
4
.运行结果
True