题目描述如下:
704. 二分查找https://leetcode.cn/problems/binary-search/
算法思路:
最简单的二分法,移动指针。*记得防止死循环的方法是指针移动mid+-1
class Solution:
def search(self, nums: List[int], target: int) -> int:
# if len(nums)==1:
# if nums[0]==target:
# return 0
# else:
# return -1
left,right=0,len(nums)-1
#升序数组,排除头尾情况
if nums[left]>target or nums[right]<target:
return -1
while left<=right:
#mid=(left+right)//2
mid=left+(right-left)//2
if nums[mid]<target:
left=mid
left+=1
#print(left)
elif nums[mid]>target:
right=mid
right-=1
else:#nums[mid]=target
return mid
return -1