Created
December 6, 2018 14:14
-
-
Save jovianlin/dceece42ac44d9be1b2eed87ef1faf58 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution(object): | |
def search(self, nums, target): | |
""" | |
:type nums: List[int] | |
:type target: int | |
:rtype: int | |
""" | |
start, end = 0, len(nums)-1 | |
while start <= end: | |
mid = (start+end)//2 | |
if target == nums[mid]: | |
return mid | |
# IF LEFT IS IN ORDER... | |
if nums[start] <= nums[mid]: | |
# AND TARGET LIES WITHIN THIS LEFT CHUNK... | |
if nums[start] <= target <= nums[mid]: end = mid-1 | |
# TARGET LIES WITHIN THE RIGHT CHUNK. | |
else: start = mid+1 | |
# ELSE, THINGS ARE NOT IN ORDER | |
else: | |
# IF TARGET LIES BETWEEN MID AND END, TARGET IN RIGHT CHUNK | |
if nums[mid] <= target <= nums[end]: | |
start = mid+1 | |
# ELSE IT IS IN LEFT CHUNK | |
else: | |
end = mid-1 | |
return -1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment