Find First and Last Position of Element in Sorted Array @ Алгосики для самых маленьких, s2e2

preview_player
Показать описание
💻 Алгоритмы для «тех кто входит в IT» — никаких предварительных знаний не требуется. Разбираемся с нуля.

#BinarySearch #ДвоичныйПоиск #Алгоритмы #JavaScript

---

0:00 Всем привет!
0:17 Постановка задачи
0:45 Как решить «в лоб»?
1:30 В чем проблема решения «в лоб»?
2:12 Проектируем алгоритм и пишем код
6:17 Сдаём

---

Рекомендации по теме
Комментарии
Автор

Спасибо за задачу! У меня тоже похожее решение получилось, только я целиком два цикла в одной функции написала 😄 и сразу после первого возвращала [-1, -1], если не найдена первая граница. Предложенное решение мне нравится аккуратностью, больше подойдёт для продакшена.
Относительно объединения, то кажется лучше оставить всё как есть, а именно в двух функциях. Попробовала объединить в одну, немного нагромождено выглядит и хоть кода и меньше, но разобраться в объединении сложнее. А так всё прозрачно и чисто. 🔥

webelart
Автор

Вроде бы простое, но эффективное решение в лоб с минимальным кодом.

function findCurrentRange(nums, target) {
let arr = [];
for(let i = nums.indexOf(target); i <= nums.lastIndexOf(target); i++) {
arr.push(i)
}
return arr;
}

АлексейБлещик
Автор

А если мы сначала находим левый индекс, и он существует, дальше отпиливаем массив по этот индекс и делаем поиск уже правого индекса, так будет не быстрее?

alexup