AcWing 789. 数的范围
原题链接
简单
作者:
Andy_P
,
2024-02-28 09:40:10
,
所有人可见
,
阅读 25
思路解释
- 采用二分的方法,首先找到左指针,若左指针指向该值则继续,不指向则输出-1 -1
- 找到左指针后,重新归零左右指针,开始二分寻找右指针,找到右指针输出即为该题答案
n,m = map(int,input().split())
list_all = list(map(int,input().split()))
while (m):
a = int(input())
l = 0
r = n-1
while (l<r):
mid = l+r>>1
if (list_all[mid]>=a):
r = mid
else:
l = mid+1
if (list_all[l]!=a):
print("-1 -1")
else:
print(l,end = ' ')
l = 0
r = n-1
while l<r:
mid = l+r+1>>1
if list_all[mid]<=a:
l = mid
else:
r = mid-1
print(r)
m-=1