Разбор задачи AA1 с собеседования в Яндекс
Условие задачи:
1 решение:
Всего есть два решения (мне известных): в начале сортируем входной массив, затем идем по этому массиву, ищем разрывы и записываем их в строку (Память - O(1), время - O(N * log N));
2 решение:
Первым проходом записываем все числа в HashSet, затем берем случайным образом число из HashSet до тех пор, пока она не окажется пустой. Затем ищем крайнее число слева для нахождения исходного диапазона, затем идем вправо от этого числа, попутно удаляем найденные числа из HashSet (Память - O(N), время - O(N)), но есть нюанс, этот алгоритм не сортирует конечный результат, а лишь находит диапазоны.
А какое решение больше нравится вам?
1 решение - 🤡
2 решение - 😍
Условие задачи:
Дан список неотрицательных целых чисел, повторяющихся элементов в списке нет. Нужно преобразовать его в строку, сворачивая соседние по числовому ряду числа в диапазоны.
Примеры:
[1,4,5,2,3,9,8,11,0] => "0-5,8-9,11"
[1,4,3,2] => "1-4"
[1,4] => "1,4"
[1,2] => "1-2"
1 решение:
2 решение:
А какое решение больше нравится вам?
1 решение - 🤡
2 решение - 😍
😍4🙊2👍1🙉1
Открывается набор на программу Сириуса и Яндекса
«Научно-практический интенсив по мобильной разработке»
Если вы уже какое-то время занимаетесь программированием и вам интересна мобильная разработка, это ваш шанс пройти насыщенный знаниями курс по ios или flutter.
Вас ждут 2 недели лекций и семинаров под руководством опытных разработчиков Яндекса.
При успешном прохождении отборочного этапа, вас пригласят на очный этап, который пройдет в университете Сириус. Билеты, питание и проживание оплачиваются организаторами.
Год назад я и сам проходил этот интенсив, атмосфера там бомбовая а ночное море завораживает)
Канал про технологии - @Gubin_dev
Ссылка - https://yandex.ru/yaintern/siriusmobile
😍 - подам заявку
🙈 - уже побывал
🤡 - я в своем познании настолько преисполнился
«Научно-практический интенсив по мобильной разработке»
Если вы уже какое-то время занимаетесь программированием и вам интересна мобильная разработка, это ваш шанс пройти насыщенный знаниями курс по ios или flutter.
Вас ждут 2 недели лекций и семинаров под руководством опытных разработчиков Яндекса.
При успешном прохождении отборочного этапа, вас пригласят на очный этап, который пройдет в университете Сириус. Билеты, питание и проживание оплачиваются организаторами.
Год назад я и сам проходил этот интенсив, атмосфера там бомбовая а ночное море завораживает)
Канал про технологии - @Gubin_dev
Ссылка - https://yandex.ru/yaintern/siriusmobile
😍 - подам заявку
🙈 - уже побывал
🤡 - я в своем познании настолько преисполнился
🤡5👍3🙊3😍2
Пара мыслей по поводу стейт менеджмента в Flutter
Мы пытаемся рассматривать bloc, riverpod и другие менеджеры состояний как место где можно писать бизнес-логику и хранить состояние.
Я считаю, что стоит строго отделить инструменты управления состоянием UI и состоянием системы.
Есть несколько аргументов:
- изменения состояния системы не обязательно будет затрагивать слой UI
- объекты bloc подвязываются к ЖЦ виджетов
- bloc включает в себя данные, необходимые для UI.
Из redux я вспонил понятие Global State. И кажется мы совсем забыли про него. А ведь это важная часть системы. Его недостатком в Flutter можно считать попытку позиционировать себя как Global State. НЕЛЬЗЯ ХРАНИТЬ ВСЕ ЯЙЦА В ОДНОЙ КОРЗИНЕ. Redux желал быть всеобъемлющим.
Надеюсь сформировать мысли по поводу того как должен выглядеть такой State Holder.
Пока такие термины: агрегат, транзакции, промежуточная консистентность состояния
Канал про технологии - @Gubin_dev
Мы пытаемся рассматривать bloc, riverpod и другие менеджеры состояний как место где можно писать бизнес-логику и хранить состояние.
Я считаю, что стоит строго отделить инструменты управления состоянием UI и состоянием системы.
Есть несколько аргументов:
- изменения состояния системы не обязательно будет затрагивать слой UI
- объекты bloc подвязываются к ЖЦ виджетов
- bloc включает в себя данные, необходимые для UI.
Из redux я вспонил понятие Global State. И кажется мы совсем забыли про него. А ведь это важная часть системы. Его недостатком в Flutter можно считать попытку позиционировать себя как Global State. НЕЛЬЗЯ ХРАНИТЬ ВСЕ ЯЙЦА В ОДНОЙ КОРЗИНЕ. Redux желал быть всеобъемлющим.
Надеюсь сформировать мысли по поводу того как должен выглядеть такой State Holder.
Пока такие термины: агрегат, транзакции, промежуточная консистентность состояния
Канал про технологии - @Gubin_dev
👍2😱2❤1🔥1
Продолжаю читать DDD (Предметно-ориентированное проектирование)
Хотел как-то резюмировать раздел про предохранительный уровень (anticorruption layer)
https://telegra.ph/Predohranitelnyj-uroven-anticorruption-layer-01-13
Канал про технологии - @Gubin_dev
Хотел как-то резюмировать раздел про предохранительный уровень (anticorruption layer)
https://telegra.ph/Predohranitelnyj-uroven-anticorruption-layer-01-13
Канал про технологии - @Gubin_dev
Telegraph
Предохранительный уровень (anticorruption layer)
Я хочу выделить всего три понятия из книги: - adapter - по сути преобразовывает вызовы из одного формата в другой. Представьте что вас есть система, которая долгое время завязывалась на какой-то модуль и он довольно прочно вплелся в нее. Тогда нам необходимо…
🔥3⚡1👍1
Там Билайн на днях поделился своей архитектурой в статье
Я прочитал немного, ребята используют классические подходы, но приходят к странным выводам и странным решениям.
Мне конкретно не нравится, что они модифицируют классы виджетов для реализации DI. С другой стороны, интересное решение, чтобы не плодить вызовы одного объекта (например, локатора). Но почему бы тогда не использовать простой provider?
В общем вопросов много, если у вас есть какие-нибудь замечания, идеи для обсуждения по этой статье/архитектуре в целом, пишите в комментарии, давайте вместе помозгуем
Канал про технологии - @Gubin_dev
Я прочитал немного, ребята используют классические подходы, но приходят к странным выводам и странным решениям.
Мне конкретно не нравится, что они модифицируют классы виджетов для реализации DI. С другой стороны, интересное решение, чтобы не плодить вызовы одного объекта (например, локатора). Но почему бы тогда не использовать простой provider?
В общем вопросов много, если у вас есть какие-нибудь замечания, идеи для обсуждения по этой статье/архитектуре в целом, пишите в комментарии, давайте вместе помозгуем
Канал про технологии - @Gubin_dev
Хабр
Об одном способе реализации архитектуры крупного Flutter-приложения
Привет! Меня зовут Олег Скирюк, я лидирую контент-разработку в одной из команд билайна. Сам я перешёл в мобильную разработку из веба три года назад, после чего собрал и обучил одну из первых...
👍3⚡1🔥1😱1
Gubin_dev
Открывается набор на программу Сириуса и Яндекса «Научно-практический интенсив по мобильной разработке» Если вы уже какое-то время занимаетесь программированием и вам интересна мобильная разработка, это ваш шанс пройти насыщенный знаниями курс по ios или…
Прием заявок заканчивается в это воскресенье
👍1😱1👨💻1😨1
15 февраля сгонял на Mobile Peerlab от Яндекса
Было круто и атмосферно! Поболтали в тусовочно-домашнем формате. Обсудили флаттер в вебе, архитектуру (как без этого), поговорили про Backend-Driven UI. Ну и просто поболтали и обменились опытом.
Было несколько треков: flutter, android, ios.
Так уж получились, что узнал про это мероприятие в последний момент.
Постараюсь сделать для вас анонсы классных тусовок!
А пока делюсь с вами фоточками
Подробнее можно почитать на сайте: https://dev.go.yandex/events/peer-lab
Было круто и атмосферно! Поболтали в тусовочно-домашнем формате. Обсудили флаттер в вебе, архитектуру (как без этого), поговорили про Backend-Driven UI. Ну и просто поболтали и обменились опытом.
Было несколько треков: flutter, android, ios.
Так уж получились, что узнал про это мероприятие в последний момент.
Постараюсь сделать для вас анонсы классных тусовок!
А пока делюсь с вами фоточками
Подробнее можно почитать на сайте: https://dev.go.yandex/events/peer-lab
❤4🔥3💋2
Работа с rootBundle в Flutter
rootBundle позволяет подгружать файлы из ассетов, однако не все знают, что эта операция является синхронной и в devtools, на вкладке performance она отображается как AssetManager::GetAsMapping.
Будьте осторожнее когда грузите данные из ассетов, ведь это может обернуться потерей кадров.
Кстати, есть интересный участок кода во flutter (можно увидеть на скрине или по ссылке) https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/services/asset_bundle.dart#L88
Получается, что в некоторых случаях даже лучше просто вычислить значение в изоляте?
А еще некоторые ассеты могут вызываться в worker thread’е)
https://github.com/flutter/engine/pull/6648
rootBundle позволяет подгружать файлы из ассетов, однако не все знают, что эта операция является синхронной и в devtools, на вкладке performance она отображается как AssetManager::GetAsMapping.
Будьте осторожнее когда грузите данные из ассетов, ведь это может обернуться потерей кадров.
Кстати, есть интересный участок кода во flutter (можно увидеть на скрине или по ссылке) https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/services/asset_bundle.dart#L88
Получается, что в некоторых случаях даже лучше просто вычислить значение в изоляте?
А еще некоторые ассеты могут вызываться в worker thread’е)
https://github.com/flutter/engine/pull/6648
❤3🗿2🔥1🤔1
2 апреля пройдет конференция для Flutter-разработчиков
Расскажут как метчить Flutter c отечественной ОС Аврора
https://auroraos.timepad.ru/event/2820781
Расскажут как метчить Flutter c отечественной ОС Аврора
Первая конференция для разработчиков про использование Flutter для создания или портирования приложений для российской мобильной операционной системы "Аврора"
https://auroraos.timepad.ru/event/2820781
auroraos.timepad.ru
Flutter на ОС Аврора. Развитие сообщества, экосистемы и инструментов разработки / События на TimePad.ru
Первая конференция для разработчиков про использование Flutter для создания или портирования приложений для российской мобильной операционной системы "Аврора"
🤡9👍1👀1
20 апреля пройдет конференция для мобильных и бэкенд-разработчиков DEV DAY & NIGHT
На конференции вас ждут два трека: backend и mobile. Скажу за мобилку, будет про ios, android и flutter
И говоря о флаттер, будет бомбовый доклад про DI от Сергея кольцова (Руководитель core-команды Яндекс Про), загадочный доклад про анализ энергопотребления от Никиты Васильченко (Руководитель команды перформанса Яндекс Про).
Я лично думаю что в мобилке тоже трек поделят как минимум на два, а может и на три параллельных.
Регистрируйтесь, количество мест ограничено
Подробнее: *ссылка*
На конференции вас ждут два трека: backend и mobile. Скажу за мобилку, будет про ios, android и flutter
И говоря о флаттер, будет бомбовый доклад про DI от Сергея кольцова (Руководитель core-команды Яндекс Про), загадочный доклад про анализ энергопотребления от Никиты Васильченко (Руководитель команды перформанса Яндекс Про).
Я лично думаю что в мобилке тоже трек поделят как минимум на два, а может и на три параллельных.
Регистрируйтесь, количество мест ограничено
Подробнее: *ссылка*
❤3🔥3🌚3👍2🎉1🗿1
Написал алгоритм нахождения оптимального пути на dart
Генерация происходит случайным образом, проходит по каждой клетке и с вероятностью 0.3 ставим стену.
Поиск пути происходит через BFS (breadth-first search, поиск в ширину) + backtracking. Помечаем пройденные клетки числами и если в рекурсии наткнулись на число, которое оптимальнее нашего, прекращаем ветку, и отдаем другой ветке преимущество.
Репозиторий: https://github.com/WebMad/maze_generator
Генерация происходит случайным образом, проходит по каждой клетке и с вероятностью 0.3 ставим стену.
Поиск пути происходит через BFS (breadth-first search, поиск в ширину) + backtracking. Помечаем пройденные клетки числами и если в рекурсии наткнулись на число, которое оптимальнее нашего, прекращаем ветку, и отдаем другой ветке преимущество.
Репозиторий: https://github.com/WebMad/maze_generator
🔥3❤2🎉1😎1
This media is not supported in your browser
VIEW IN TELEGRAM
Генератор островов на dart
В процессе усложнил себе задачку и написал алгос, который генерирует острова, окруженные водой.
По сути, основано на рекурсии, чекаем есть ли рядом уже острова и, если есть, поднимаем лапки к верху и прекращаем рисовать остров в эту сторону.
В процессе усложнил себе задачку и написал алгос, который генерирует острова, окруженные водой.
По сути, основано на рекурсии, чекаем есть ли рядом уже острова и, если есть, поднимаем лапки к верху и прекращаем рисовать остров в эту сторону.
🔥3❤1💊1
Пирамидки на Flutter
Другими словами, ханойская башня. Звучит конечно уже получше, чем пирамидки.
По сути, классика, работает через рекурсию.
Репозиторий: https://github.com/WebMad/hanoi_tower
Другими словами, ханойская башня. Звучит конечно уже получше, чем пирамидки.
По сути, классика, работает через рекурсию.
Репозиторий: https://github.com/WebMad/hanoi_tower
🤨3💋1🗿1
Gubin_dev
Прозрачность во Флаттер Прозрачность во флаттер может быть коварным инструментом, который в некоторых случаях значительно увеличивает сложность отрисовки страницы. Сам по себе виджет Opacity вызывает операцию saveLayer (см операции skia). Эта операция занимает…
Помните я полгода назад затирал про оптимизации?
Так вот, спустя столько времени, сообщество GDG Astrakhan все-таки решили опубликовать записи докладов 😋
Если интересует тема оптимизации отрисовки вашего Flutter-приложения, велкам ❤️
Там я рассказываю:
- как происходит отрисовка кадра во флаттер
- рассматриваю основные ошибки при построении UI
- делюсь дельными советами по оптимизации существующего UI
- рассказываю про devtools в рамках оптимизации отрисовки
- обзорно прохожусь по инструменту skia debugger
- затрагиваю тему Impeller'а (не так уж он и хорош на андроиде, честно говоря )
https://youtu.be/buAGswCcw-c?si=56Z5adI41Cwr48Jz
Так вот, спустя столько времени, сообщество GDG Astrakhan все-таки решили опубликовать записи докладов 😋
Если интересует тема оптимизации отрисовки вашего Flutter-приложения, велкам ❤️
Там я рассказываю:
- как происходит отрисовка кадра во флаттер
- рассматриваю основные ошибки при построении UI
- делюсь дельными советами по оптимизации существующего UI
- рассказываю про devtools в рамках оптимизации отрисовки
- обзорно прохожусь по инструменту skia debugger
- затрагиваю тему Impeller'а (
https://youtu.be/buAGswCcw-c?si=56Z5adI41Cwr48Jz
🔥2