Untitled
unknown
python
4 years ago
1.3 kB
9
Indexable
def search_target(nums, target, left, right):
if len(nums[left:right]) <= 1:
return -1
mid = (left + right) // 2
if nums[mid] == target:
return mid
if nums[mid] <= nums[right]:
if nums[mid] < target <= nums[right]:
return search_target(nums, target, mid, right)
else:
return search_target(nums, target, left, mid)
else:
if nums[left] <= target < nums[mid]:
return search_target(nums, target, left, mid)
else:
return search_target(nums, target, mid, right)
def broken_search(nums, target) -> int:
if nums[0] == target:
return 0
if nums[len(nums) - 1] == target:
return len(nums) - 1
return search_target(nums, target, 0, len(nums) - 1)
# def test(array_, target_):
# result = broken_search(array_, target_)
# return result
#
# def file_reader(file_address):
# with open(file_address, 'r') as reader:
# target, second_line = reader.readlines()
# array = [int(i) for i in str(second_line).split(' ')]
# return int(target), array
#
#
# if __name__ == '__main__':
# target, array = file_reader('input.txt')
# print(test(array, target))
Editor is loading...