LeetCode---33. Search in Rotated Sorted Array

題目

給出一個遞增有序數組,以某個元素爲準旋轉,如[0,1,2,4,5,6,7]變成了[4,5,6,7,0,1,2]。另給出一個目標值,在這個數組中尋找,如果找到返回index,否則返回-1。數組中沒有重複元素,你的算法時間複雜度必須爲O(logn)。

Python題解

class Solution(object):
    def search(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        low, high = 0, len(nums) - 1
        while low <= high:
            mid = low + (high - low + 1) // 2
            if nums[mid] == target:
                return mid
            if nums[low] <= nums[mid]:
                if nums[low] <= target <= nums[mid]:
                    high = mid - 1
                else:
                    low = mid + 1
            else:
                if nums[mid] <= target <= nums[high]:
                    low = mid + 1
                else:
                    high = mid - 1
        return -1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章