Как перенести задержку в корутину Kotlin без блокировки?
Используйте suspend main и delay(1000): delay приостанавливает корутину, а не удерживает поток в блокирующем ожидании. Вывод будет start, затем done.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Используйте suspend main и delay(1000): delay приостанавливает корутину, а не удерживает поток в блокирующем ожидании. Вывод будет start, затем done.
Читать ответИспользуйте стек: открывающие скобки добавляйте в него, а для закрывающей проверяйте последнюю открытую. В конце стек должен быть пустым.
Читать ответСначала выводится companion, затем init-1, init-2, secondary: 1, search. Для второго объекта повторяются init-1, init-2, secondary: 2, search, но не companion.
Читать ответExtension-функция не получает доступ к private-полям класса, поэтому fullName не компилируется. Перенесите её внутрь Person или откройте нужные свойства осознанно.
Читать ответСумма массива вычисляется одним проходом с накопителем. Для пяти чисел количество операций фиксировано, а для массива произвольной длины время O(n).
Читать ответДля одноразовой инициализации подходит CompletableDeferred<Session>: retrieve ожидает готовность без блокировки потока, save завершает общее ожидание для всех потребителей.
Читать ответПосчитайте частоты чисел, затем проверьте, что среди частот нет повторов. Количество разных частот должно совпасть с количеством разных чисел.
Читать ответДля отсортированного по возрастанию массива используйте бинарный поиск: сравнивайте середину с целью и отбрасывайте половину диапазона. Время O(log n), дополнительная память O(1).
Читать ответСобирайте состояние в viewLifecycleOwner.lifecycleScope внутри repeatOnLifecycle(STARTED). Это останавливает подписку вместе с View и возобновляет её при возвращении экрана.
Читать ответКаждую единицу выгодно продавать по максимальной цене среди дня её выпуска и всех последующих дней. Поэтому ответ равен сумме суффиксных максимумов массива цен.
Читать ответКод не компилируется: synchronized не является таким модификатором функции Kotlin, а reified требует inline. Здесь reified вообще не нужен, достаточно обычного generic.
Читать ответКод не компилируется, потому что delay вызывается из обычных функций. Сделайте displayFirst и displaySecond suspend; если результат не нужен, используйте launch вместо async.
Читать ответ