ЗАДАЧА НА АЛГОРИТМЫ с СОБЕСЕДОВАНИЯ в BIG TECH #java #shorts #coding

preview_player
Показать описание
#java #shorts #задача #собеседование #программирование

_________________________________________________________________________
tags:

java, java tutorial, learn java, java tutorial for beginners, programming, java programming, tutorial, java full course, java beginner lesson, coding with john, java for beginners, how to code, java programming tutorial, программирование, джава, navin, java language, java placement, webdev, oracle, java coding, lesson, how to learn java, java programming for beginners, java course, how to code java, app development, java basics, java beginner, software engineer, programmer, learn java programming, learn java code, should you learn java, разработка, java code, developer, cloud, java virtual machine, how to code in java, learn to code java for beginners, learn java for beginners, jvm, jdk, java programming, java, как стать программистом, программирование, изучение языков программирования, менторинг программирование, разработка, курсы программирования онлайн, programming, программист, android, языки программирования, it, джава, java для начинающих, it курсы, front-end, программирование на java, java start, обучение java, develop, java уроки для начинающих, изучение java, code blog, выбор языка программирование, java программирование, начало программирование, javascript, уроки java, java уроки, программирование для начинающих, back-end, design, backend, как стать программистом с нуля, coding, java junior, java для чайников, программирование на java с нуля, как стать программистом самостоятельно, прямой эфир о java, как выучить java, как выучить java самостоятельно, как стать джавистом, java с нуля, java уроки с нуля, что учить java, язык программирования java, курсы программирования, js, сравнение, java tutorial for beginners, программирование с нуля, разработчик, курс java, как стать java разработчиком, уроки, джаваскрипт, python, для начинающих
Рекомендации по теме
Комментарии
Автор

📌 ССЫЛКА НА TELEGRAM В ОПИСАНИИ ПРОФИЛЯ

senior_javist
Автор

По моему, для больших массивов, будет эффективнее если мы сначала найдем K бинарным поиском, а потом инкриментируя/декриментируя индекс K найдем его границы (работает для отсортированных массивов). Такой алгоритм будет работать за O(N + log N).

Пример на Python:

def find_segment(nums, k):
some_k_index = binary_search(nums, k)

if some_k_index is None:
return [-1, -1]

start = some_k_index

while nums[start] == nums[some_k_index]:
start -= 1

end = some_k_index

while nums[end] == nums[some_k_index]:
end += 1

start += 1
end -= 1

return [start, end] if start != end else [some_k_index]

Alikhan-xmxq
Автор

Зача решается за logn через бинарный поиск

denchick
Автор

вот решение за O(log(n))

def findRange(nums: list[int], target: int):
l, r = 0, len(nums)
result = [-1] * 2
while l < r:
m = (l + r) // 2
if target < nums[m]:
r = m
else:
l = m + 1
result[1] = l - 1
l, r = 0, len(nums)-1
while l < r:
m = (l + r) // 2
if target <= nums[m]:
r = m
else:
l = m + 1
result[0] = l
if nums[result[0]] != target:
return [-1, -1]
return result

blastedcorgi
Автор

Тут бинарный поиск был бы на много быстрее полного перебора

elmarrasulzade
Автор

решение задачи на C# .FirstOrDefault(x => x == value) ?? -1, .LastOrDefault(x => x == value) ?? -1

iteospace
Автор

зашел сказать что нужно двоичным поиском а тут уже ввсе умные?

mileslucis
Автор

Тоже хотел написать про бинарный поиск, но все уже написали ))

ПавелАвдеев
Автор

Решение на js
Дважды перебираем массив в разных направлениях, тернарником пушим индекс массива либо -1

koak