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

2022-06-09 04:33:10 字數 727 閱讀 8964

題目實際考察的是二分法。

雖然旋轉後的陣列是部分有序的,但是由於每次迭代都必然有一部分(左部分或者右部分)是有序的,此時可以判斷當前數是否在有序的那部分,進而控制上下界。

package com.walegarrett.interview;

/** * @author walegarrett

* @date 2021/2/28 19:21

*//**

* 題目描述:整數陣列 nums 按公升序排列,陣列中的值 互不相同 。

* 在傳遞給函式之前,nums 在預先未知的某個下標 k(0 <= k < nums.length)上進行了 旋轉,使陣列變為 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下標 從 0 開始 計數)。

* 例如, [0,1,2,4,5,6,7] 在下標 3 處經旋轉後可能變為 [4,5,6,7,0,1,2] 。

* 給你 旋轉後 的陣列 nums 和乙個整數 target ,如果 nums 中存在這個目標值 target ,則返回它的索引,否則返回 -1 。

*/public class leetcode_33 else

}return -1;}}

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

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

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

時隔半年再次嘗試這題,當時做的太複雜 二分法注意細節 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 mi...

二分法 搜尋旋轉排序陣列

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