题目
解题
同上应该也是二分查找但是需要 查找两个 因为元素
两个二分查找 查 findFirst 和 findLast
def solution(nums: list, target: int):
    def find_first(nums: list, target: int):
        left = 0
        right = len(nums) - 1
        while left <= right:
            mid = left + (right - left) // 2
            if nums[mid] <= target:
                left = mid + 1
            else:
                right = mid - 1
        return left
    def find_last(nums: list, target: int):
        left = 0
        right = len(nums) - 1
        while left <= right:
            mid = left + (right - left) // 2
            if nums[mid] < target:
                left = mid + 1
            else:
                right = mid - 1
        return right
    if len(nums) == 0:
        return [-1, -1]
    first = find_first(nums, target)
    last = find_last(nums, target)
    print(first,last)
    if first <= last:
        return [first, last]
    else:
        return [-1, -1]
if __name__ == '__main__':
    print(solution([5, 7, 7, 8, 8, 10], 8))
