Untitled

 avatar
unknown
python
4 years ago
1.3 kB
6
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...