Tuesday, September 9, 2014

Leetcode: Search in Rotated Sorted Array @Python

class Solution:
    # @param A, a list of integers
    # @param target, an integer to be searched
    # @return an integer
    def search(self, A, target):
        n=len(A)
        if n==0:
            return -1
        left=0
        right=n-1
        while left<=right:
            mid=(left+right)//2
            if left==right:
                return left if target==A[left] else -1
            elif target==A[mid]:
                return mid
            elif A[left]<=A[mid]:
                if A[left]<=target<A[mid]:
                    right=mid-1
                else:
                    left=mid+1
            else:
                if A[mid]<target<=A[right]:
                    left=mid+1
                else:
                    right=mid-1                
        return -1

No comments :

Post a Comment