- Видео 207
- Просмотров 291 652
Технократия
Россия
Добавлен 4 дек 2011
C 2016 года помогаем запускать, развивать и защищать цифровые продукты для для самых требовательных клиентов в промышленном, финтех и ИТ-секторе.
Мы работаем по трем основным направлениям: разрабатываем ИТ-продукты, обучаем и интегрируем методологии безопасной разработки и внедряем в бизнес-процессы решения на основе искусственного интеллекта.
А еще мы создаем много контента: подкасты, митапы, образовательные шоу и многое другое. Поэтому этот канал - видеохаб для всего нашего контента.
Мы работаем по трем основным направлениям: разрабатываем ИТ-продукты, обучаем и интегрируем методологии безопасной разработки и внедряем в бизнес-процессы решения на основе искусственного интеллекта.
А еще мы создаем много контента: подкасты, митапы, образовательные шоу и многое другое. Поэтому этот канал - видеохаб для всего нашего контента.
Решение задач с Yandex Cup 2024. Backend. Отборочный этап. Вторая часть
Продолжаем показывать решение задач с отборочного этапа Yandex Cup 2024. В этот раз разбирались с задачами о грузоперевозках на драккарах - это такие морские суда викингов. Кстати, Альбина получила за эту задачу максимальный балл.
Актуальные вакансии: technokratos.com/career/list
Подписка на канал: t.me/+yQC-SASHBbowMWEy
#python #yandexcup #программирование
Актуальные вакансии: technokratos.com/career/list
Подписка на канал: t.me/+yQC-SASHBbowMWEy
#python #yandexcup #программирование
Просмотров: 662
Видео
Решение задач с Yandex Cup 2024. Первая часть
Просмотров 949Месяц назад
В этом году Альбина решила попробовать свои силы в турнире по программированию Yandex Cup. Мы решили разобрать задачи, которые организаторы подготовили для участников. Накидайте лайков и комментариев для ускорения публикации второй части. Актуальные вакансии: technokratos.com/career/list Подписка на канал: t.me/ yQC-SASHBbowMWEy #python #yandexcup #программирование
Что будет, если дать DevOps-инженеру решить задачу с LeetCode?
Просмотров 620Месяц назад
Сегодня у нас экспериментальный выпуск, в котором вместо разработчиков мы посадили решать алгоритмические задачки с LeetCode нашего DevOps-инженера Руслана Абдуллаева. Актуальные вакансии: technokratos.com/career/list Telegram-канал: t.me/ jiDFCs31F08wMGNi
Как использовать алгоритмы DFS и BFS на реальных задачах
Просмотров 1982 месяца назад
Продолжаем разбираться в теме алгоритмов DFS и BFS. На этот раз попробуем применить их для того, чтобы решить задачу поиска максимальной глубины N-дерева. Актуальные вакансии: technokratos.com/career/list Telegram-канал: t.me/ jiDFCs31F08wMGNi
Что такое алгоритмы BFS и DFS? Разбор алгоритмов обхода графов.
Просмотров 2712 месяца назад
Что такое алгоритмы BFS и DFS? Разбор алгоритмов обхода графов.
Решение Hard задачи с Leetcode. Integer to English Words Solution
Просмотров 4822 месяца назад
Решение Hard задачи с Leetcode. Integer to English Words Solution
Как применять RAG (Retrieval-Augmented Generation) для решения бизнес-задач.
Просмотров 1 тыс.3 месяца назад
Как применять RAG (Retrieval-Augmented Generation) для решения бизнес-задач.
Применяем бинарный поиск для решения задачи с LeetCode. Долгожданный выпуск с мороженым!
Просмотров 3214 месяца назад
Применяем бинарный поиск для решения задачи с LeetCode. Долгожданный выпуск с мороженым!
Как загрузить csv-файл в базу данных. 4 способа
Просмотров 3734 месяца назад
Как загрузить csv-файл в базу данных. 4 способа
Как работает алгоритм критического удара в компьютерных играх. Разбор кода
Просмотров 4844 месяца назад
Как работает алгоритм критического удара в компьютерных играх. Разбор кода
First Bad Version и Minimum Number of Days to Make m Bouquets: алгоритмы и решения
Просмотров 3614 месяца назад
First Bad Version и Minimum Number of Days to Make m Bouquets: алгоритмы и решения
Как пройти техническое собеседование на позицию аналитика? Советы и ответы на вопросы
Просмотров 3455 месяцев назад
Как пройти техническое собеседование на позицию аналитика? Советы и ответы на вопросы
3Sum на Leetcode: решение на Python с комментариями и объяснениями
Просмотров 3,4 тыс.5 месяцев назад
3Sum на Leetcode: решение на Python с комментариями и объяснениями
Как Успешно Пройти Livecoding Собеседование: Советы и Ошибки.
Просмотров 7556 месяцев назад
Как Успешно Пройти Livecoding Собеседование: Советы и Ошибки.
ЗАСТАВИЛИ АЙТИШНИКОВ ЗАНОВО CДАВАТЬ ЕГЭ😱
Просмотров 6026 месяцев назад
ЗАСТАВИЛИ АЙТИШНИКОВ ЗАНОВО CДАВАТЬ ЕГЭ😱
Решение задачи Boats to Save People с Leetcode. Алгоритмическая качалка
Просмотров 3266 месяцев назад
Решение задачи Boats to Save People с Leetcode. Алгоритмическая качалка
Roman to Integer. Как перевести римские цифры в арабские на языке Python?
Просмотров 5246 месяцев назад
Roman to Integer. Как перевести римские цифры в арабские на языке Python?
Как применять жадные алгоритмы в решении алгоритмических задач с Leetcode
Просмотров 1,4 тыс.7 месяцев назад
Как применять жадные алгоритмы в решении алгоритмических задач с Leetcode
Как применять один алгоритм для решения нескольких задач. Решаем LeetCode на Python
Просмотров 7908 месяцев назад
Как применять один алгоритм для решения нескольких задач. Решаем LeetCode на Python
Управление командой. Что об этом думает техлид и менеджеры проектов. Айзат Фархутдинов
Просмотров 4018 месяцев назад
Управление командой. Что об этом думает техлид и менеджеры проектов. Айзат Фархутдинов
Применение рекурсии для решения алгоритмических задач. «Letter Combinations of a Phone Number»
Просмотров 6219 месяцев назад
Применение рекурсии для решения алгоритмических задач. «Letter Combinations of a Phone Number»
Как собрать команду разработки, и не развалить ее в процессе? Отвечает менеджер проектов
Просмотров 1769 месяцев назад
Как собрать команду разработки, и не развалить ее в процессе? Отвечает менеджер проектов
Решаем Leetcode на Python. Задача 605 «Can Place Flowers».
Просмотров 1,9 тыс.10 месяцев назад
Решаем Leetcode на Python. Задача 605 «Can Place Flowers».
Для чего нужен эмоциональный интеллект? Отвечают HR-менеджеры. Проджекторы.Talks
Просмотров 36510 месяцев назад
Для чего нужен эмоциональный интеллект? Отвечают HR-менеджеры. Проджекторы.Talks
Как развить эмоциональный интеллект? ПРОДЖЕКТОРЫ
Просмотров 39910 месяцев назад
Как развить эмоциональный интеллект? ПРОДЖЕКТОРЫ
Разбор сложной задачи на LeetCode: Diagonal Traverse II. Новогодний выпуск Алгоритмической качалки
Просмотров 56911 месяцев назад
Разбор сложной задачи на LeetCode: Diagonal Traverse II. Новогодний выпуск Алгоритмической качалки
Как перевести Строку в Число? Решаем Задачу LeetCode 'String to Integer'
Просмотров 3,3 тыс.Год назад
Как перевести Строку в Число? Решаем Задачу LeetCode 'String to Integer'
Задача с Leetcode уровня Medium. Не так сложно, как мы думали. Решение алгоритмов на Python
Просмотров 1,2 тыс.Год назад
Задача с Leetcode уровня Medium. Не так сложно, как мы думали. Решение алгоритмов на Python
Справедливый обмен сладостями: решение задачи Fair Candy Swap (Leetcode) на языке Python
Просмотров 642Год назад
Справедливый обмен сладостями: решение задачи Fair Candy Swap (Leetcode) на языке Python
Подскажите, где можно все задачи тура найти чтобы попробовать решить?
Сложная задача.
К сожалению, в питоне не силен, но в качестве одного из улучшений могу предложить вместо dictionary, который, если я правильно понял, является по сути хэш таблицей, использовать структуру данных, которая обычно называется массив. В теории (опять же, не знаю, возможно ли такое в питоне, но думаю, что возможно), так как id`шники пациентов это натуральные числа, можно хранить температуру в массиве и в качестве индекса элемента массива использовать id пациента. Тогда доступ к конкретному пациенту будет быстрее, так как нужно будет лишь обратиться к памяти по адресу "начало массива" + "id пациента" * "размер float" и хэши тут уже участвовать не будут
ну и очевидно, проблема округления, про которую написали ниже. наверняка один из тестов что-то типа 4.6 + 0.1 = 4.699999999999999 и != 4.7
Можно попробовать хранить сумму как целое число, а не как float, на ответ могут влиять ошибки округления, которые накапливаются в sum
А там разве в отчете нет значений, на которых тест валится?)))
Не
Исходников бы накидали и условие полное:)
Думаю, ч то они хотят when и чтобы i был одним из вариантов выбора.
🔥🔥🔥Актуальные вакансии: technokratos.com/career/list
Зачем рисовать схему(как делаю я), если можно показать всё руками(как делает Алина)? 😁 P.S. Не хочу расстраивать автора видео, но тут всё же квадратичная(О(n^2)) сложность по времени. Ведь учитывается худший случай.
Вы правы, Алексей.
Бл... ть. Первое адекватное объяснение! Спасибо )
return list(set(range(1,len(n)+1))-set(n))
Вы серьёзно хотите, чтобы новички, посмотрев этот выпуск, решили, что можно не стараться для решения алгоритмических задач? Почему автор говорит о том, что это "довольно хорошее решение"? Если сразу видно, что использование памяти на уровне пятой части худших решений? Со сложностью автор не ошибся, но нельзя же говорить, что "проходимся один раз по всем элементам" в первом цикле. Как, в общем то и во втором. Там сначалаа проходятся по ВСЕМ элементам во ВСЕХ строках, а потом дополнительно опять по ВСЕМ элементам матрицы. Во втором цикле также из-за написания кода всё делает дважды, хотя второй подцикл, как и в первом случае, решает оба случая. Что мешает хранить rows и columns в set()? Тогда сложность второго цикла уже не квадратичная, а также линейная. Давайте будем честны, это не "довольно хорошее решение"
Самое забавное, когда проходишь такое грамотное/умное интервью, а на проекте сплошной говнокод 🤣 По поводу первой задачи, более чем уверенна, когда с таким решением, как на 5:07, сдашь PR, тебя отправят переделывать на первый вариант. Конечно, если это не приложение где все вычисления и тд совершаются в мобилке/компе (а таких меньшинство)
Был опыт увидеть говнокод из проекта, где используется RxSwift. Просили рассказать что там происходит в каждом методе. Волосы зашевелились))) Но там такая шарашка была... А так, в общем то, если это не алгоритмическая часть, то в основном адекватные (не сложные) задачки по многопоточности или на знание общеизвестных протоколов. Было, также, рассказать, что сделано в коде не по SOLID.
Прикольные чуваки👍
#еще есть такое решение: people = [3,1,7] limit = 7 people.sort() l,r = 0, len(people)-1 boats = 0 while l <= r: boats += 1 if people[l] + people[r] <= limit: l += 1 r -= 1 boats
Добрый день ! Спасибо за интересный материал и хорошую подачу. Я пытаюсь разобраться... Можно ли RAG ом считать любой прикрепленный файл играющий роль базы данных ? И в каком случае в настоящее время используется разбиение на чанки ?
Как выйти в главное меню в " Real life "
41😊
Очень круто! Спасибо за выпуск! С нетерпением ждём, очередного элегантного решения хардовой задачки !
"Ловим баги, ловим галюцинации..." Рановатенько вы устроили репрезентацию...!
Смотрите, в ответе про переговорку нет самого очевидного: ссылка на тот самый гуглкулендарь через который можно бронировать переговорки. В подробном ответе же много воды которая вряд ли интересует вашего пользователя. Так как, если человек пошёл бронировать переговорку, то он знает зачем он это делает, чем они оснащены и (даже) сколько там посадочных мест. Скорее пользователя интересует число доступных переговорок на ближайшее время. А так технология интересная.
Больше интересно было, какую именно модель выбрали, какие еще смотрели, но это уже nda видимо
Смотрели много моделей с рынка и изучали возможность развернуть модель локально, но остановились в итоге на облачном варианте. Как-нибудь можно будет сделать ролик с тестированием основных игроков рынка.
В принципе, объяснил правильно, и достаточно подробно Я не дата-саентист по профилю, больше архитектор, но тоже занимаюсь таким
а нету гайдика как Юнит тесты писать на GRPCшные методы ?), а то чёт я взялся а там чёрт ногу сломит:)
Подсоберем нашего опыта и расскажем!
Хорошая задача, не часто на литкоде встречаются примеры бинпоиска по чему-то кроме простого массива. Вообще, лично я сразу подумал о другом решении: поддерживать структуру, которая в каждый момент времени помнила бы непрерывные последовательности цветов на грядке, и добавлять в неё цветы по мере распускания, но это тоже O(n log n). А ещё интуиция подсказывает, что декартово дерево должно снизить сложность до O(n), хотя это слишком экзотическая структура данных для такой задачи.
Питон-based вариант в теории c maxsplit будет быстрее, тк будет только один сплит. class Solution: def lengthOfLastWord(self, s: str) -> int: return len(s.rstrip().rsplit(maxsplit=1)[-1]) if s else 0 И, честно говоря, вообще не понял в чем алгоритмическая задача тут, вроде всё сразу очевидно.
Юзать isdigit и особенно сравнивать в конце "переполненный" результат с максимальным и минимальным значением нечестно. ) Тогда уж можно просто lstrip, потом собрать строку проверяя isdigit и сделать int.
У нас всего 10 ^ 4 значений. И судя по всему, многое зависит от нагрузки на сервер в данный момент времени.
музыка просто опасевич, no concentration
Я, конечно все понимаю, но в задаче не сказано, что нельзя использовать всю мощь языка Python. Поэтому мне не совсем понятны подобные решения и тем более то, что не каждый мидл может это решить. Можно, конечно писать длинный код, но все решается в 11 строк кода с учетом измерения времени выполнения кода. Может быть я действительно чего-то не понял? Может быть действительно нужен некий изврат и притвориться, что у языка нет встроенных функций для быстрого и качественного решения подобной задачи? Я написал решение с условием, что списки могут быть и не отсортированы. Поправьте меня, если я не прав, пожалуйста class Solution: def mergeTwoLists(self, list1, list2): list3 = list1.copy() list3.extend(list2) print(sorted(list3)) # print(list3) import time start = time.time() sol = Solution() sol.mergeTwoLists(list1 = [1, 2, 4], list2 = [1, 3, 4]) finish = time.time() - start print(finish)
Слияние уже сортированных списков по сложности проще чем сортировка одного общего списка. Задача именно так поставлена, а если не обращать внимание на отдельные слова в постановке, то зачем браться за решение :)
@@ДмитрийЖучков-щ8н в моем коде нет разницы, сортирован список, или нет. Результат будет одинаков
Начнем с того, что в задаче - LinkedList, а не простой массив, и ты тупо не можешь его скопировать, объединить и отсортировать таким способом, закончим тем, что твое решение выполняется за N log N времени, и если тестировать не на списках из 3 элементов, то разница большая
Лайк за стойкость, ну и за полезный контент конечно)
Спасибо, что смотрите и комментируете❤️❤️
Визгливо-писклявая музыка очень отвлекает.
Спасибо) было интересно
А какие вопросы чаще всего задают на технических собеседованиях аналитикам? я сам недавно решил сменить сферу и выбрать курсы по IT, долго выбирал между разными компаниями, но остановился на Skypro. В итоге после окончания курса получил классный оффер и перешел на удаленку))
Решение говна, конечно, начнем с того, что можно сразу сравнить длину массива и максимальный элемент, если максимальный n, а длина n+1- значит там нет пропусков, по условию, и не надо обходить все опять по кругу, сравнивая попарно числа.
100 лайков есть - где видео на фоне озера с мороженым? )
Нас пока подводит погода в Казани. Сегодня вот был град, но мы надеемся, что скоро будет тепло
@@technokratosTV А, да, ща даже видел недавно новости про смерч в Казани, ужас, аккуратнее там.
Спасибо большое, классный видос)
Всех смутила структура данных - список) а так, алгоритм рабочий)
Продолжайте видео по задачам по kotlin
Я бы обратил внимание, что при улучшении можно было бы вынести повторяющиеся 4 раза код(где меняются циферки 1-2) в отдельный метод... это бы сэкономило более 17 строк кода... при этом код бы стал более красивым, связным... Но на скорость работы сильно не повлияло бы конечно...
Спасибо за видео, Альбина
Не надо показывать руками непонятные фигуры. Открой paint или что угодно и нарисуй.
на 10:00 минуте можно испугаться)
Кстати, у нас открыты вакансии для системных аналитиков: technokratos.com/career
Это список, а не массив.
class Solution: def intToRoman(self, num: int) -> str: rom = "IVXLCDM" lnum = str(num) l = len( lnum ) result = "" j = 0 m = 0 for i in range(1 , l + 1): c = lnum[ l - i ] x = int( c ) if i <= 4: if x == 9: result = rom[j] + rom[j+2] + result elif x == 4: result = rom[j] + rom[j+1] + result elif x == 5: result = rom[j+1] + result elif x > 5: y = x - 5 for z in range(0 , y): result = rom[j] + result result = rom[j+1] + result elif x > 0: for z in range(0 , x): result = rom[j] + result j = j + 2 else: m = x * 10 ** (i-4) for z in range(0 , m): result = rom[j] + result return result
Питон выучил по ходу, поэтому возможно использовал не самые быстрые оптимальные операторы доступа по индексу, преобразования и т.д. Но сложность алгоритма явно меньше... потому, что один цикл вложенные циклы только для выведения в итог N количество символов одинаковых, возможно есть проще оператор
как варик рекурсию добавить, чтобы погружаться до последнего символа и на возврате собирать строку, если в питоне result += rom[j] значительно быстрее result = rom[j] + result... просто не знаю как конкатенация реализована....
Гомер Йот Симпсон
Чет мало скуфов комментирует, даже странно)
Зачем они тебе? Друзей ищешь?
@@krutoywg1003 тупого и покорного нижнего себе ищу. Пойдёшь ко мне в рабы?
Мороженка вредная) Оч много сахара...
Задача в такой постановке довольно скучная, было бы интересно рассмотреть её обобщение. Найти все н-ки, такие для которых выполняется их сумма равна произвольно выбранному. Или даже больше, дано множество преобразований, элементов и результатов. Необходимо получить все н-ки, для которых существует композиция из операторов из множества, удовлетворяющая предикату. Частный случай. Mf := { x=> x } Ma := { 1, 2, -3, 3} P := x=> y => z => ( x + y + z ) === 0 F ( Mf, Ma, P ) = { 1, 2, -3 }
Да литкод вообще не отличается хардкорностью, он для новичков
" Необходимо получить все н-ки, для которых существует композиция из операторов из множества, удовлетворяющая предикату." - ничего не понятно
@@daiske2867 Это Вы типа сами такую задачу придумали или есть аналог на leetcode/code forces ? Потому я хоть и прочитал неск раз, но не совсем понятно, что делать тут, как её решать. Типа с помощью функции модификатора надо выбрать 3 цифры из множества, которые дают нуль вместе?
@@heybeachMIN это эта задача, в ней надо в массиве найти 3 элемента в сумме 0. Я лишь обобщил, а почему именно чисел, можно же набор любых элементов. Почему мы можем оперировать только конечным множеством, можно же задать генератор ( в моем случае этот генератор это массив функций преобразователей над начальным множеством элементов, который и позволяет генерировать новые элементы ). Почему именно сумма 3х, а если любое предлагаемое условие, ну вот теперь мне нужна не сумма 3х, а разность 2х или вообще такое набор, который состоит из числа и всех его цифр, при этом они должны быть в 1 множестве ( множество [23, 2, 3, 5] , искомый набор [23, 2, 3]). На самом деле если упростить, то это просто очень умная фильтрация.
@@daiske2867 терь дошло)