1 # binarysearch
2 # 给定一个排序的整数数组(升序),和一个要查找的目标整数target
3 # 查找到target第一次出现的的下标(从0开始)如果数组中没有就返回-1
4 """
5 输入数组[1,4,4,5,7,7,8,9,9,10]和目标整数1,输出其所在的位置为0,即第一次出现第0个位置.输入数组[1,2,3,3,4,5,10]和
6 目标整数3,输出2,即第一次出现在第二个位置
7 """
8
9
10 class Solution:
11 def binarySearch(self, nums, target):
12 left = 0
13 right = len(nums) - 1
14 while 1:
15 middle = (left + right) // 2
16 if left <= right:
17 if nums[middle] > target:
18 right = middle - 1
19 elif nums[middle] < target:
20 left = middle + 1
21 else:
22 return middle
23 else:
24 return -1
25
26
27 c1 = Solution()
28 print(c1.binarySearch([1, 4, 4, 5, 7, 7, 8, 9, 9, 10], 6))