简单算法
直接利用python的特性
class Solution:
def search(self, nums, target):
srch = [ind for ind, val in enumerate(nums) if val == target]
if len(srch) == 0:
return -1
else:
return srch[0]
最小二乘法
class Solution:
def search(self, nums, target):
left, right = 0, len(nums) - 1
while left <= right :
mid = (left + right) // 2
if nums[mid] == target:
return mid
if nums[left] <= nums[mid] :
if target >= nums[left] and nums[mid] > target :
right = mid - 1
else :
left = mid + 1
else :
if target > nums[mid] and target <= nums[right] :
left = mid + 1
else :
right = mid - 1
return -1