方法一:
'''
Author: 365JHWZGo
Description: 34. 在排序数组中查找元素的第一个和最后一个位置
Date: 2021-10-06 10:49:14
FilePath: Pythontestdemo3.py
LastEditTime: 2021-10-09 19:25:44
LastEditors: 365JHWZGo
'''
class Solution(object):
def searchRange(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
res =[]
if target not in nums:
return [-1,-1]
i = nums.index(target)
num = nums.count(target)
if num == 1:
res = [i,i]
else:
res = [i,i+num-1]
return res
方法二:
class Solution(object):
def searchRange(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
res = [-1,-1]
left, right = 0, len(nums) - 1
while right >= left:
mid = (left + right) // 2
if target == nums[mid]:
for i in range(mid,-1,-1):
if nums[i]==target:
l = i
else:
break
for j in range(mid,len(nums)):
if nums[j]==target:
r = j
else:
break
res.clear()
res.extend([l,r])
break
elif target > nums[mid]:
left = mid + 1
else:
right = mid - 1
return res



