Leetcode33. 搜尋旋轉排序陣列
阿新 • • 發佈:2019-02-11
題目大意:返回旋轉排序陣列中的值等於目標值的元素的索引
題目分析:使用二分法查詢。根據旋轉陣列的性質,將這個陣列從中間切開,前後兩個子陣列必定有一個是按照升序排列的,我們在升序的子陣列中判斷是否存在等於目標值的元素,若沒有,則在另一個部分查詢。
程式碼展示:
class Solution(object): def search(self, nums, target): left = 0 right = len(nums)-1 while left<=right: mid = (left+right)/2 if nums[mid]==target: return mid if nums[left]<=nums[mid]: if nums[left]<=target and target<nums[mid]: right = mid-1 else: left = mid+1 if nums[mid]<=nums[right]: if nums[mid]<target and target<=nums[right]: left = mid+1 else: right = mid-1 return -1