題目
難度:★☆☆☆☆
類型:數(shù)組
給定一個(gè) n 個(gè)元素有序的(升序)整型數(shù)組 nums 和一個(gè)目標(biāo)值 target ,寫一個(gè)函數(shù)搜索 nums 中的 target,如果目標(biāo)值存在返回下標(biāo),否則返回 -1。
提示
你可以假設(shè) nums 中的所有元素是不重復(fù)的。
n 將在 [1, 10000]之間。
nums 的每個(gè)元素都將在 [-9999, 9999]之間。
示例
示例 1
輸入: nums = [-1,0,3,5,9,12], target = 9
輸出: 4
解釋: 9 出現(xiàn)在 nums 中并且下標(biāo)為 4
示例 2
輸入: nums = [-1,0,3,5,9,12], target = 2
輸出: -1
解釋: 2 不存在 nums 中因此返回 -1
解答
這道題非常經(jīng)典,這里需要注意控制循環(huán)條件以及中點(diǎn)值不等于目標(biāo)值時(shí)的處理。
class Solution:
def search(self, nums, target):
left, right = 0, len(nums)-1
while left <= right:
mid = left + (right - left) // 2
if nums[mid] < target:
left = mid + 1
elif nums[mid] > target:
right = mid - 1
else:
return mid
return -1
如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~