xdoj254 二分查找
时间: 2023-12-03 12:41:03 浏览: 152
二分查找
xdoj254 二分查找是一道经典的二分查找问题,其题目描述为:给定一个升序排列的整数数组 nums,和一个整数 target,请你在数组中找到 target 的第一个和最后一个位置,并返回该位置的数组下标。如果数组中不存在 target,则返回 [-1, -1]。时间复杂度必须是 O(log n) 级别。
以下是 Python 代码实现:
```python
class Solution:
def searchRange(self, nums: List[int], target: int) -> List[int]:
if not nums:
return [-1, -1]
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
i, j = mid, mid
while i >= 0 and nums[i] == target:
i -= 1
while j < len(nums) and nums[j] == target:
j += 1
return [i + 1, j - 1]
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return [-1, -1]
```
阅读全文