最左边那个 17 在哪
数组是 [13, 15, 17, 17, 17, 23, 24]。运行下面这段程序:
def left_bound(a, target):
lo = 0
hi = len(a) - 1
got = -1
while lo <= hi:
mid = (lo + hi) // 2
if a[mid] == target:
got = mid
hi = mid - 1
elif a[mid] < target:
lo = mid + 1
else:
hi = mid - 1
return got
print(left_bound([13, 15, 17, 17, 17, 23, 24], 17))
全部评论