System Design Interview - Designing Google Docs
An old friend of mine Vladimir Ivanov from the @architectureweekly channel asked me join the system design session and come up with an idea on how to make a new Google Docs. I think the session was fruitful and interesting, due to the limited time we didn't manage to discuss all the topics but still I think the session was useful.
Ссылки: Канал Architecture Weekly | Patreon (если вы не в России) | Boosty (если вы в России) | #SystemDesign
An old friend of mine Vladimir Ivanov from the @architectureweekly channel asked me join the system design session and come up with an idea on how to make a new Google Docs. I think the session was fruitful and interesting, due to the limited time we didn't manage to discuss all the topics but still I think the session was useful.
Ссылки: Канал Architecture Weekly | Patreon (если вы не в России) | Boosty (если вы в России) | #SystemDesign
Media is too big
VIEW IN TELEGRAM
❤2👍2
Find Insert Position - LeetCode with me 34
Еще одна задачка на бинарный поиск. Точнее, по совокупности маркеров в задании удалось это быстро обнаружить и решить сразу подходящим алгоритмом. Отличие от обычного поиска состоит в том, что если значение в массиве не нашлось, то возвращаем позицию, где оно могло бы быть, а не -1 как обычно.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Еще одна задачка на бинарный поиск. Точнее, по совокупности маркеров в задании удалось это быстро обнаружить и решить сразу подходящим алгоритмом. Отличие от обычного поиска состоит в том, что если значение в массиве не нашлось, то возвращаем позицию, где оно могло бы быть, а не -1 как обычно.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥3👍2❤1
Работа с Zip-архивами - Weekly Tips 20
🧑💻 Лайвкодинг - работа с Zip-архивами в Java. Удивительно, но API для работы с ними есть в Java начиная с версии 1.1 и сегодня я покажу как создать архив, получить список файлов и извлечь файл из архива.
Постепенно готовлю новый более сложный выпуск, а пока повторяем Java core.
Ссылки: Ссылка на код на GitHub | Patreon (если вы не в России) | Boosty (если вы в России) | #Java
🧑💻 Лайвкодинг - работа с Zip-архивами в Java. Удивительно, но API для работы с ними есть в Java начиная с версии 1.1 и сегодня я покажу как создать архив, получить список файлов и извлечь файл из архива.
Постепенно готовлю новый более сложный выпуск, а пока повторяем Java core.
Ссылки: Ссылка на код на GitHub | Patreon (если вы не в России) | Boosty (если вы в России) | #Java
Media is too big
VIEW IN TELEGRAM
👍5❤2
Valid Sudoku - LeetCode with me 35
Проверяем судоку на валидность. Есть решать задачку в лоб, ровно так, как написано в условии, то добиться высоких результатов, ожидаемо, не получится. Подход без использования вспомогательных структур данных позволяет получить 100% результат и именно его будем реализовывать.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Проверяем судоку на валидность. Есть решать задачку в лоб, ровно так, как написано в условии, то добиться высоких результатов, ожидаемо, не получится. Подход без использования вспомогательных структур данных позволяет получить 100% результат и именно его будем реализовывать.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍3
Всем привет, это Александр Бармин.
Спасибо, что вы со мной все это время. К сожалению, в силу сложившихся обстоятельств я больше не могу выпускать видео два раза в неделю и, скорее всего, уйду на некоторое время в отпуск. Выпуски с решением задачек с LeetCode будут, как и раньше, выходить раз в неделю по понедельникам.
Я хочу обратиться к моим подписчикам на Boosty уровня «Senior-помидор» - спасибо большое, что вы со мной. Я больше не могу поддерживать такой высокий тем выпуска видео и поэтому прошу вас перейти с уровня поддержки «Senior-помидор» на обычный уровень. Это будет честно.
Скорее всего, в ближайшие несколько недель вернется текстовый формат со ссылками - мне самому его очень не хватает.
Остаемся на связи и пишем на Java! Ставьте лайки, пишите комментарии, увидимся.
Спасибо, что вы со мной все это время. К сожалению, в силу сложившихся обстоятельств я больше не могу выпускать видео два раза в неделю и, скорее всего, уйду на некоторое время в отпуск. Выпуски с решением задачек с LeetCode будут, как и раньше, выходить раз в неделю по понедельникам.
Я хочу обратиться к моим подписчикам на Boosty уровня «Senior-помидор» - спасибо большое, что вы со мной. Я больше не могу поддерживать такой высокий тем выпуска видео и поэтому прошу вас перейти с уровня поддержки «Senior-помидор» на обычный уровень. Это будет честно.
Скорее всего, в ближайшие несколько недель вернется текстовый формат со ссылками - мне самому его очень не хватает.
Остаемся на связи и пишем на Java! Ставьте лайки, пишите комментарии, увидимся.
❤11🤝3🔥2👍1
Soduku Solver - LeetCode with me 36
В прошлый раз проверяли судоку на валидность, в этот раз будем решать с использованием алгоритма backtracking.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
В прошлый раз проверяли судоку на валидность, в этот раз будем решать с использованием алгоритма backtracking.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
❤3🔥2
Count and Say - LeetCode with me 37
Несложная задачка с очень сложным описанием - реализуем алгоритм RLE (run-length encoding) или кодирование длин серий. Разберемся с условием и реализуем.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Несложная задачка с очень сложным описанием - реализуем алгоритм RLE (run-length encoding) или кодирование длин серий. Разберемся с условием и реализуем.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍5❤1
Combination Sum - LeetCode with me 38
Очередная задачка на backtracking - выбрать из массива элементы, которые в сумме дают заданное число. Если представить, что ищем сумму двух элементов, которые вместе дают target, то нужно зафиксировать один элемент, допустим, А, то нужно найти второй, который равен (target - A). С тремя элементами так же - зафиксируем один элемент (А) и будем искать теперь два других, которые в сумме дают (target - A). Для суммы неограниченной длинны делаем несколько итераций, где каждый раз уменьшаем target на значение зафиксированного элемента.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Очередная задачка на backtracking - выбрать из массива элементы, которые в сумме дают заданное число. Если представить, что ищем сумму двух элементов, которые вместе дают target, то нужно зафиксировать один элемент, допустим, А, то нужно найти второй, который равен (target - A). С тремя элементами так же - зафиксируем один элемент (А) и будем искать теперь два других, которые в сумме дают (target - A). Для суммы неограниченной длинны делаем несколько итераций, где каждый раз уменьшаем target на значение зафиксированного элемента.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥7❤2😁1
Combination Sum II - LeetCode with me 39
Очень похоже на задачку, которую мы решали в прошлый раз, на Combination Sum. Основная сложность этой задачи состоит в том, что теперь исходные данные могут содержать дубликаты, а в результатах дубликатов быть не должно. Можем использовать структуры данных вроде множеств, который позволяют от дубликатов избавиться, либо отсортируем входные данные и будем пропускать дубликаты.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Очень похоже на задачку, которую мы решали в прошлый раз, на Combination Sum. Основная сложность этой задачи состоит в том, что теперь исходные данные могут содержать дубликаты, а в результатах дубликатов быть не должно. Можем использовать структуры данных вроде множеств, который позволяют от дубликатов избавиться, либо отсортируем входные данные и будем пропускать дубликаты.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍5❤2
First Missing Positive - LeetCode with me 40
Задачка уровня Hard на поиск первого положительного пропуска в массиве. Рассмотрим два решения - очевидное и оптимальное, используем циклическую сортировку.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Задачка уровня Hard на поиск первого положительного пропуска в массиве. Рассмотрим два решения - очевидное и оптимальное, используем циклическую сортировку.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥4
Trapping Rain Water - LeetCode with me 41
Задачка уровня Hard на вычисление количества воды, которую можно налить на поверхность нестабильной высоты. Задача выглядит сложной, но, по факту, два указателя и вычисление локального минимума.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Задачка уровня Hard на вычисление количества воды, которую можно налить на поверхность нестабильной высоты. Задача выглядит сложной, но, по факту, два указателя и вычисление локального минимума.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍3❤1
Multiply Strings - LeetCode with me 42
Следующая задачка уже среднего уровня сложности на длинную арифметику - нужно умножить два числа представленные в виде строк. Применим метод, известный каждому еще со школы - умножение столбиком.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Следующая задачка уже среднего уровня сложности на длинную арифметику - нужно умножить два числа представленные в виде строк. Применим метод, известный каждому еще со школы - умножение столбиком.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍4
Wildcard Matching - LeetCode with me 43
Еще одна сложная задача на написание собственного ограниченного движка регулярных выражений. Сначала попробуем применить наиболее логичный подход - класс Pattern, затем реализуем тривиальное решение, а затем решение на базе динамического программирования.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Еще одна сложная задача на написание собственного ограниченного движка регулярных выражений. Сначала попробуем применить наиболее логичный подход - класс Pattern, затем реализуем тривиальное решение, а затем решение на базе динамического программирования.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
❤4🔥3👍2
Forwarded from javaswag
https://javaswag.github.io/episode/72/
Слушать подкаст в Apple | Spotify | Yandex
В 72 выпуске подкаста Javaswag поговорили с Александром Барминым о Спринге и архитектуре Необанка
00:00 Начало
05:34 Значение доменной области в разработке
17:28 IBM FileNet и Java EE
22:45 Проблемы и эволюция Java EE
32:50 Spring и Spring Boot
48:10 Миграция между версиями Spring
56:05 Гибкость и сложности Spring Boot
01:01:02 Адаптация Spring к современным трендам
01:04:50 Проблемы зависимости от Spring
01:07:10 Конкуренция и эволюция Spring
01:14:49 Kotlin и Spring: синергия технологий
01:15:44 Эволюция TransferWise в Neobank
01:16:36 Архитектура Wise: микросервисы и AWS
01:19:21 Kubernetes и проблемы распределенных систем
01:24:55 Консистентность и механизмы реконсиляции
01:29:08 Управление микросервисами и версиями
01:33:20 Автоматизация обновления зависимостей
01:37:07 CI/CD и миграции баз данных
01:41:17 Деплой
01:46:49 Непопулярное мнение о языках программирования
01:50:00 Критика Spring Boot и его магии
Гость https://www.linkedin.com/in/abarmin/
Ссылки:
Канал Александра на YouTube - https://www.youtube.com/@ABarmin
Канал Java & Spring Weekly в Telegram - @java_weekly
Wise Tech Stack - https://medium.com/wise-engineering/wise-tech-stack-2022-edition-a6ac089a382f
Spring Cloud с Борисовым - https://youtu.be/4tSyz_v9w7Q
Кип сейф! 🖖
Слушать подкаст в Apple | Spotify | Yandex
В 72 выпуске подкаста Javaswag поговорили с Александром Барминым о Спринге и архитектуре Необанка
00:00 Начало
05:34 Значение доменной области в разработке
17:28 IBM FileNet и Java EE
22:45 Проблемы и эволюция Java EE
32:50 Spring и Spring Boot
48:10 Миграция между версиями Spring
56:05 Гибкость и сложности Spring Boot
01:01:02 Адаптация Spring к современным трендам
01:04:50 Проблемы зависимости от Spring
01:07:10 Конкуренция и эволюция Spring
01:14:49 Kotlin и Spring: синергия технологий
01:15:44 Эволюция TransferWise в Neobank
01:16:36 Архитектура Wise: микросервисы и AWS
01:19:21 Kubernetes и проблемы распределенных систем
01:24:55 Консистентность и механизмы реконсиляции
01:29:08 Управление микросервисами и версиями
01:33:20 Автоматизация обновления зависимостей
01:37:07 CI/CD и миграции баз данных
01:41:17 Деплой
01:46:49 Непопулярное мнение о языках программирования
01:50:00 Критика Spring Boot и его магии
Гость https://www.linkedin.com/in/abarmin/
Ссылки:
Канал Александра на YouTube - https://www.youtube.com/@ABarmin
Канал Java & Spring Weekly в Telegram - @java_weekly
Wise Tech Stack - https://medium.com/wise-engineering/wise-tech-stack-2022-edition-a6ac089a382f
Spring Cloud с Борисовым - https://youtu.be/4tSyz_v9w7Q
Кип сейф! 🖖
Javaswag
#72 - Александр Бармин - эволюция Спринга и архитектура Необанка
В 72 выпуске подкаста Javaswag поговорили с Александром Барминым о Спринге и архитектуре Необанка
🔥12
Jump Game II - LeetCode with me 44
Задача на динамическое программирование. Иногда кажется, что самые быстрые алгоритмы на LeetCode это далеко не самые правильные или подходящие, поэтому рассмотрим сначала хороший алгоритм, а потом быстрый.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Задача на динамическое программирование. Иногда кажется, что самые быстрые алгоритмы на LeetCode это далеко не самые правильные или подходящие, поэтому рассмотрим сначала хороший алгоритм, а потом быстрый.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
🔥6
Permutations - LeetCode with me 45
Сегодня рассмотрим две задачи на генерацию перестановок. Обе решаются сходным образом - с использованием алгоритма backtracking.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Сегодня рассмотрим две задачи на генерацию перестановок. Обе решаются сходным образом - с использованием алгоритма backtracking.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍7❤🔥2
Rotate Image - LeetCode with me 46
Задача на поворот двухмерного изображения. Берем и поворачиваем.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Задача на поворот двухмерного изображения. Берем и поворачиваем.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
❤5
Group Anagrams - LeetCode with me 47
Группируем анаграммы вместе. Анаграммы - слова, которые могут быть преобразованы друг в друга путем перестановки букв в них. Очевидное решение с сортировкой работает, но не дает достаточной производительности, поэтому напишем свой несложный алгоритм хеширования.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Группируем анаграммы вместе. Анаграммы - слова, которые могут быть преобразованы друг в друга путем перестановки букв в них. Очевидное решение с сортировкой работает, но не дает достаточной производительности, поэтому напишем свой несложный алгоритм хеширования.
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍9❤4
Pow x ^ n - LeetCode with me 48
Реализуем функцию возведения в степень без использования стандартной библиотеки. Для повышения производительности воспользуемся знаниями из школьного курса алгебры.
Это последнее, семидесятое видео в 2024 году. За весь год мои видео посмотрели более 61 тысячи раз, что составляет более 8 тысяч часов. А еще на канал на YouTube подписалось больше 1100 новых зрителей. Довольно неплохой рост, на мой взгляд!
Спасибо всем, кто был со мной в 2024 году, увидимся в новом, 2025 году!
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Реализуем функцию возведения в степень без использования стандартной библиотеки. Для повышения производительности воспользуемся знаниями из школьного курса алгебры.
Это последнее, семидесятое видео в 2024 году. За весь год мои видео посмотрели более 61 тысячи раз, что составляет более 8 тысяч часов. А еще на канал на YouTube подписалось больше 1100 новых зрителей. Довольно неплохой рост, на мой взгляд!
Спасибо всем, кто был со мной в 2024 году, увидимся в новом, 2025 году!
Ссылки: Ссылка на задачу | Patreon (если вы не в России) | Boosty (если вы в России) | #LeetCode
Media is too big
VIEW IN TELEGRAM
👍10❤3
Уважаемые читатели, поздравляю вас с наступающим Новым годом!🥳
Желаю в новом году решать побольше интересных задач, не терять мотивации и оптимизма.
А еще смотрите мои видео и пишите побольше комментариев 👨💻👩💻
С праздником!🎉
Желаю в новом году решать побольше интересных задач, не терять мотивации и оптимизма.
А еще смотрите мои видео и пишите побольше комментариев 👨💻👩💻
С праздником!
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰15🔥9🎄6🤝2