题目描述
blablabla
样例
n, m = map(int, input().split())
q = list(map(int, input().split()))
q.append(0)
q.append(0)
while(m != 0):
k = int(input())
# 寻找第一个等于K的坐标 我这边让二分的边界定为 左边为<5 右边>=5 则所求为r
l, r = -1, n
while l + 1 != r:
mid = l + r >> 1
if q[mid] >= k :
r = mid
else:
l = mid
if q[r] != k:
print('-1 -1')
else:
print(r)
ll, rr = -1, n
while ll + 1 != rr:
mid = ll + rr >> 1
if q[mid] <= k:
ll = mid
else:
rr = mid
if q[ll] != k:
print(r)
else:
print(ll)
m -= 1
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla