В этой статье мы сосредоточимся на том, как деревья бинарного поиска могут быть реализованы на Go и почему они предпочтительнее линейных структур данных, таких как массивы и связанные списки.
Дано: отсортированный массив целых чисел и целочисленное значение target, верните индекс target. Если target нету в списке , верните индекс, в котором он находилась бы.
Примечание: алгоритм должен иметь сложностью O(log n). Пример :
Вход: nums = [1,3,5,6], target = 5
Выход: 2 Ограничения:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums содержит целые значения, отсортированные по возрастанию.
-104 <= target <= 104 Без ограничения O(log n) можно решить задачу простым перебором списка. def searchInsert(nums: List[int], target: int) -> int:
if not nums:
return 0
for i, num in...