https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
def searchRange(nums, target):
"""
在排序数组中查找元素的第一个和最后一个位置
二分查找值,找到值后,用两个指针去找索引
"""
i, j = 0, len(nums) - 1
while nums and i <= j:
in_middle = (i + j) // 2
if nums[in_middle] == target:
k, p = in_middle - 1, in_middle + 1
while 0 <= k and nums[k] == nums[in_middle]:
k -= 1
while p <= len(nums) - 1 and nums[p] == nums[in_middle]:
p += 1
return [k + 1, p - 1]
elif nums[in_middle] < target:
i = in_middle + 1
else:
j = in_middle - 1
return [-1, -1]