Leetcode||33. Search in Rotated Sorted Array

来源:互联网 发布:android应用程序优化 编辑:程序博客网 时间:2024/06/05 05:35

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.

说实话,数据量小的时候,暴利搜索还是挺好的,但是,这种方法想想就好了。稍微好点的方式是用二分查找,节约时间

class Solution(object):    def search(self, nums, target):        """        :type nums: List[int]        :type target: int        :rtype: int        """        start = 0        end = len(nums) - 1        while start <= end:        mid = (start + end) / 2        if nums[mid] == target:        return mid        if nums[mid] >= nums[start]:        if target >= nums[start] and target < nums[mid]:        end = mid - 1        else:        start = mid + 1        if nums[mid] < nums[end]:        if target > nums[mid] and target <= nums[end]:        start = mid + 1        else:        end = mid - 1        return -1


原创粉丝点击