本文共 924 字,大约阅读时间需要 3 分钟。
Given an array of integers nums
sorted in ascending order, find the starting and ending position of a given target
value.
Your algorithm's runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1]
.
Example 1:
Input: nums = [5,7,7,8,8,10], target = 8Output: [3,4]
Example 2:
Input: nums = [5,7,7,8,8,10], target = 6Output: [-1,-1]
查找目标数字在列表中最开始的位置和最后的位置,如果不存在则返回-1,很容易理解。
直接用index去做很容易。
class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: try: a=nums.index(target) b=len(nums)-1-nums[::-1].index(target) return [a,b] except: return [-1,-1]
或者用二分查找做这道题。注意二分查找的写法。最后比较的是nums[l]和target。
class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: length=len(nums) if length==0:return [-1,-1] l, r= 0, length-1 a,b=0,0 while l
转载地址:http://icrbb.baihongyu.com/