给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1,用python写
时间: 2024-02-27 12:55:09 浏览: 168
最接近的三数之和.md
好的,可以使用二分查找算法来解决这个问题,以下是实现代码:
```python
def search(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
```
其中,left 和 right 分别表示数组的左右边界,mid 为 left 和 right 的中间位置,每次循环通过比较中间值和目标值的大小关系来缩小查找范围。如果中间值等于目标值,直接返回下标;如果中间值小于目标值,则在右半部分继续查找;如果中间值大于目标值,则在左半部分继续查找。如果最终无法找到目标值,则返回 -1。
阅读全文