33 搜尋旋轉排序陣列 二分法

2022-06-30 19:30:16 字數 585 閱讀 1959

時隔半年再次嘗試這題,當時做的太複雜

二分法注意細節:

1. 左右端點初始化時,右端點記得-1   l,r = 0, len(nums)-1

2. 二分查詢結束的判斷條件,記得加等號    while  l <= r:

3. mid 的 賦值  mid = l + (r-l)//2 或者  mid = (l+r) //2  

4. 二分法的跳出條件: if nums[mid] == taget: return mid 

5. 判斷二分邊的時候,記得取端點,加等號

if  nums[0] <= target < nums[mid]

if nums[ mid ] < target <= nums[-1]

如果不加,端點就取不到

本題細節:  

1. 需要將 nums[0] == nums[mid]  與  nums[0] < nums[target] 兩種情況合併,因為mid取為左端點,一定不能忽略 nums[0] == nums[mid] 這種情況

二分法 33 搜尋旋轉排序陣列

給你乙個公升序排列的整數陣列 nums 和乙個整數 target 假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 請你在陣列中搜尋 target 如果陣列中存在這個目標值,則返回它的索引,否則返回 1 示例 1 輸...

33 搜尋旋轉排序陣列 二分法 旋轉陣列

題目實際考察的是二分法。雖然旋轉後的陣列是部分有序的,但是由於每次迭代都必然有一部分 左部分或者右部分 是有序的,此時可以判斷當前數是否在有序的那部分,進而控制上下界。package com.walegarrett.interview author walegarrett date 2021 2 2...

二分法 搜尋旋轉排序陣列

leetcode33 搜尋旋轉排序陣列 無重複元素 假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你的演算法時間複雜度必須是 o lo...