704. 二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution:
def search(self, nums: List[int], target: int) -> int:
# 迭代循环方法
# left = 0
# right = len(nums)-1
# while (left<=right):
# half = left+(right-left)//2
# if nums[half]>target:
# right = half-1
# elif nums[half]<target:
# left = half+1
# else:
# return half
# return -1
# 递归方法
def search_II(left,right):
while left<=right:
half = (left+right)//2
if nums[half]==target:
return half
elif nums[half]>target:
return search_II(left,half-1)
else:
return search_II(half+1,right)
return -1
return search_II(left=0,right=len(nums)-1)