ar
Feedback
Алгоритмы - Собеседования, Олимпиады, ШАД

Алгоритмы - Собеседования, Олимпиады, ШАД

الذهاب إلى القناة على Telegram

Номер заявления регистрацию в РКН: № 5731053751 Чат: @algoses_chat По всем вопросам: @vice22821

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Алгоритмы - Собеседования, Олимпиады, ШАД

تُعد قناة Алгоритмы - Собеседования, Олимпиады, ШАД (@algoses) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 11 913 مشتركاً، محتلاً المرتبة 16 822 في فئة التعليم والمرتبة 54 924 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 11 913 مشتركاً.

بحسب آخر البيانات بتاريخ 26 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 29، وفي آخر 24 ساعة بمقدار 3، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 27.38‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 10.97‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 3 261 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 306 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 9.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل строка, собеседование, foo, delete, o(n.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Номер заявления регистрацию в РКН: № 5731053751 Чат: @algoses_chat По всем вопросам: @vice22821

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 27 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التعليم.

11 913
المشتركون
+324 ساعات
+257 أيام
+2930 أيام
أرشيف المشاركات
Задача с собеседования в Zopsmart Даны строки s и t длиной m и n, соответственно. Верните минимальную подстроку (подстроку окна) строки s такую, что каждый символ из строки t (включая повторяющиеся) содержится в этом окне. Если такой подстроки не существует, верните пустую строку "". Тестовые данные составлены таким образом, чтобы ответ был уникальным. Follow up: можете ли вы найти алгоритм, работающий за O(m + n) по времени? Пример 1: Input: s = "ADOBECODEBANC", t = "ABC" Output: "BANC" Объяснение: Подстрока минимального окна "BANC" включает символы 'A', 'B' и 'C' из строки t. Пример 2: Input: s = "a", t = "a" Output: "a" Объяснение: Вся строка s является минимальным окном. Пример 3: Input: s = "a", t = "aa" Output: "" Объяснение: Обе 'a' из строки t должны быть включены в окно. Поскольку самое большое окно s имеет только одну 'a', возвращаем пустую строку. Ограничения: m == s.length n == t.length 1 <= m, n <= 10⁵ s и t состоят из английских букв верхнего и нижнего регистра. НАШ ЧАТ АЛГОРИТМИСТОВ Решение Используем алгоритм "скользящего окна" с двумя указателями и хэш-таблицу. Расширяем окно правым указателем, пока не набираем все необходимые символы. Когда окно становится валидным, пробуем сжать его левым указателем, избавляясь от лишних символов, пока окно не перестанет удовлетворять условиям. Создаём два словаря: freqT - хранит частоту символов строки t, не изменяется; freqWindow - хранит частоту символов текущего окна, изменяется при движении указателей. Заполняем словарь freqT: - С помощью метода get(ch, 0) возвращаем текущую частоту символа, либо 0, если символ ещё не встречался. Увеличиваем счётчик символа на 1. Переменные: need - кол-во уникальных символов в t, которые нужно набрать; have - кол-во уникальных символов, которые уже есть в текущем окне. res - индексы минимального найденного окна; resLen - длина минимального окна (float("inf"), чтобы записать первое валидное окно в кач-ве минимального). Расширяем окно, проходя по строке s указателем r: - Добавляем каждый новый символ в словарь freqWindow и увеличиваем его частоту на 1; - Если текущий символ находится в freqT и после добавления его частота в freqWindow равна требуемой в freqT: увеличиваем have. Сжимаем окно, пока текущее окно содержит все необходимые символы: - Сравниваем длину окна с длиной найденного ранее (resLen). Если текущее окно короче: сохраняем его индексы в res и обновляем resLen; - Так как будем сдвигать левый указатель: текущий символ под его индексом покинет окно - уменьшаем счётчик этого символа в freqWindow на 1; - Проверяем, осталось ли окно валидным: если s[l] есть в freqT и кол-во символа в freqWindow меньше, чем необходимо (freqT), значит, мы потеряли один из требуемых уникальных символов - уменьшаем have на 1; - Сдвигаем левый указатель вправо. Если have становится меньше need, цикл завершается, мы возвращаемся к расширению окна правым указателем. Возвращаем срез по сохранённым индексам минимального найденного окна. Сложность O(m + n) - по времени (l и r двигаются только вправо и ограничены длиной s - O(m), заполнение freqT по строке t - O(n)) O(1) - по памяти (фиксированное кол-во букв алфавита) Код class Solution: def minWindow(self, s: str, t: str) -> str: if len(s) < len(t): return "" freqT, freqWindow = {}, {} for ch in t: freqT[ch] = 1 + freqT.get(ch, 0) need, have = len(freqT), 0 res, resLen = [-1, -1], float("inf") l = 0 for r in range(len(s)): ch = s[r] freqWindow[ch] = 1 + freqWindow.get(ch, 0) if ch in freqT and freqWindow[ch] == freqT[ch]: have += 1 while have == need: if (r - l + 1) < resLen: res = [l, r] resLen = (r - l + 1) freqWindow[s[l]] -= 1 if s[l] in freqT and freqWindow[s[l]] < freqT[s[l]]: have -= 1 l += 1 l, r = res return s[l:r+1] if resLen != float("inf") else "" @algoses

🔊Начался отбор в ШАД Товарищи, заполняем анкеты если ещё не сделали и приступаем к онлайн-тестированию. Время до 3 мая. Если
🔊Начался отбор в ШАД Товарищи, заполняем анкеты если ещё не сделали и приступаем к онлайн-тестированию. Время до 3 мая. Если сомневаешься, стоит ли пробовать поступать в этом году, то пробуй сейчас. Те, кто откладывают поступление на следующий год, откладывают и дальше. Сейчас лучший момент, чтобы задуматься о своем будущем. Специально в честь отбора открываем дополнительные места на интенсиве к ШАД с разбором первого этапа. Все участники получают: ➡️Разбор первого этапа с советами преподавателей, которые готовят в ШАД уже 5 лет ➡️Советы по заполнению анкеты и мотивации ➡️Подготовку к собеседованиям (следующий этап) ➡️Помощь с апелляцией Сегодня и завтра на интенсивы скидка 35% 9 1505 950 ₽ 19 30010 900 ₽ - стоимость за пакет из 2-х курсов 27 45014 850 - стоимость за пакет из 3-х курсов + дискретка в подарок 36 600 17 800 - стоимость за пакет из 4-х курсов + дискретка в подарок Количество мест ограничено! 📌 Для вопросов и записи на интенсивы напишите менеджеру

🔊Начался отбор в ШАД Товарищи, заполняем анкеты если ещё не сделали и приступаем к онлайн-тестированию. Время до 3 мая. Если
🔊Начался отбор в ШАД Товарищи, заполняем анкеты если ещё не сделали и приступаем к онлайн-тестированию. Время до 3 мая. Если сомневаешься, стоит ли пробовать поступать в этом году, то пробуй сейчас. Те, кто откладывают поступление на следующий год, откладывают и дальше. Сейчас лучший момент, чтобы задуматься о своем будущем. Специально в честь отбора открываем дополнительные места на интенсиве к ШАД с разбором первого этапа. Все участники получают: ➡️Разбор первого этапа с советами преподавателей, которые готовят в ШАД уже 5 лет ➡️Советы по заполнению анкеты и мотивации ➡️Подготовку к собеседованиям (следующий этап) ➡️Помощь с апелляцией Сегодня и завтра на интенсивы скидка 35% 9 1505 950 ₽ 19 30010 900 ₽ - стоимость за пакет из 2-х курсов 27 45014 850 - стоимость за пакет из 3-х курсов + дискретка в подарок 17 800 17 800 - стоимость за пакет из 4-х курсов + дискретка в подарок Количество мест ограничено! 📌 Для вопросов и записи на интенсивы напишите менеджеру

Привет, это ШАД. Это последний шанс попасть к нам в этом году. Мы знаем, как усердно вы готовитесь, поэтому хотим напомнить,
Привет, это ШАД. Это последний шанс попасть к нам в этом году. Мы знаем, как усердно вы готовитесь, поэтому хотим напомнить, что сильное обучение дает рост в знаниях и карьере. Для этого мы и здесь. 1. У нас бесплатная двухлетняя программа: серьёзная теория, реальные индустриальные задачи, преподаватели из Яндекса и ведущих компаний. 2. Направления: ML-разработка, Data Science, Big Data, прикладной анализ данных. 3. Поступление — через отбор. Есть классический трек (3 этапа) и альтернативный — для тех, кто уже работает в индустрии. 4. Обучаться можно офлайн / гибрид / онлайн. Подавайте заявку до 3 мая по ссылке

❗️ Через 7 часов закончится главное событие сезона - стажировка Т-банк На наших соответсвующих курсах уже выложен разбор математики и программирования, а на интенсиве по алгоритмам выложен разбор программирования. На все последние 7 часов 35% скидки в честь конца отбора. Все подробности у администратора. ➡️ Обязательно подаемся И не сомневаемся, это одна из лучших опций для получения первого опыта в индустрии: можно совмещать с учебой, загрузка от 20 часов в неделю, после нее легко залететь в штат и да, вам даже будут платить за нее! Для участия нужно просто заполнить анкету и решить отбор до 28 апреля. Задания на этот раз несложные (чекаем вот тут), но больше задач, где можно запросто ошибиться, специально сделали такие задачи, чтобы chatgpt путался с условиями и выдавал неправильные ответы и тех, кто спишет эти ответы, просто забанят в системе Т-банка. При этом из-за учебы подается меньше народу, все жесткие ботари заняты учебой, а значит у простых работяг куда больше шансов получить оффер! У топов собесы начнутся в мае, а у работяг в конце июня, когда сессия уже закончилась и есть силы и время, чтобы к ним подготовиться, еще не закончились. ➡️ Пишем качественную анкету Проходной на собес везде разный и зависит от популярности специальности и кол-во выделенных мест, региона. Где-то проход 350, а где-то 600 за контест. Далее отбор идет по анкете. Командам и HR очень важна ваша мотивация и погруженность в специальность. Будет обидно набрать полный балл за контест, но не заполнить анкету (подробный совет тоже даем участникам наших курсов). Общие советы такие: пишем про курсы, которые проходили и не проходили, фокусируем внимание на курсах от Т-банка. Только помните, что на собесе нужно будет не запутаться в этих выдумках. Обязательно пишем про олимпиадный опыт, даже школьный, от олимпиадников все просто сходят с ума. Пишем образование. Про свои стартапы и телеграмм каналы советую писать осторожно: это может отпугнуть. Подумают, что после года работы в штате вы уйдете строить свой мега успешный бизнес, а работодатель хочет, чтобы вы росли и развивались внутри компании и стали приносить пользу именной ей. Сразу создаем второй телеграмм канал для работы и учебы с настоящим именем и фамилией, без тупых статусов и аниме на аватаре. Это серьезно очень раздражает рекрутеров. Также с этого аккаунта не пишем никому и некуда никакую неоднозначную ерунду, которая может стать народным достоянием и вас скомпрометировать. Работодателю важно, чтобы вы разделяли корпоративные ценности. Касаемо составления анкеты и резюме более подробно рассказывал в ролике, обязательно посмотрите. ➡️ Собеседование Раньше большинство собесов было похоже на смотрины: команда рассказывала про себя, а вы про себя. Спрашивали мотивацию, бизнес кейс и может немного теории, задачи давали только на какого-нибудь риск аналитика. Сейчас все по-другому: контест не катает только ленивый, поэтому собесе почти всегда дают задачи. На аналитику и мл могут спросить матешу, скл, питон, а на разработчика и мл простенькие алгоритмы. Некоторые из этих заданий можно чекнуть тут, и тут, и тут, и тут, а если вы хотите разбор всех тасков с собесов - бегом на наши курсы. ➡️ Подробности Более подробно обо всем этом можно посмотреть в видео. Главное помните, что шанс выиграть в этой игре > 90% (по крайней мере, в прошлом году именно таким был процент взятых на стажировку среди наших учеников), если знать правила игры. Серьезно, прошлым летом выпускница нашего курса по аналитике прошла отбор и стала стажером-аналитиком едва закончив 11-ый класс. @postypashki_old

Завтра закончится отбора на стажировку в Т-банк Если хотите летом выйти на стажировку с высокой зарплатой и опытом работы в b
Завтра закончится отбора на стажировку в Т-банк Если хотите летом выйти на стажировку с высокой зарплатой и опытом работы в bigteche, то подаваться нужно уже сейчас. На наших соответсвующих курсах уже выложен разбор математики и программирования, а на интенсиве по алгоритмам выложен разбор программирования. 📌 Специально к закрытию отбора Скидка 35% на эти курсы с разборами до 28 апреля включительно. Также на курсах будет доступно:
➡️ разборы контеста Яндекса, Летних школ Яндекса ➡️Сочные пет проекты в портфолио ➡️Огромный банк технических вопросов ➡️Записи реальных собесов и интервью ➡️ Помощь с резюме и легендой
📌 Для записи на курс напишите менеджеру

Открылся отбор на стажировку в Т-Банк Задачи уже выложены в нашем чате (тут). Специально для участников карьерных курсов мы в
Открылся отбор на стажировку в Т-Банк Задачи уже выложены в нашем чате (тут). Специально для участников карьерных курсов мы выложим разбор соответствующих экзаменов. Также разберем экзамен по программированию на интенсиве по алгоритмам, на который также до 23 апреля действует специальная цена: 9150 5950 ₽. В разборе мы покажем подход к решению задач и как оформить ответ, чтобы получить высокий балл. Также на курсах будет доступно:
➡️ разборы контеста Яндекса, Летних школ Яндекса ➡️Огромный банк технических вопросов ➡️Записи реальных собесов и интервью
До 23 апреля курсы со скидкой 35%. 📌 Вопросы и запись — менеджеру

Задача с собеседования в Zopsmart Дана входная строка s. Переверните порядок слов в ней. Слово определяется как последовательность символов, не являющихся пробелами. Слова в s будут разделены хотя бы одним пробелом. Верните строку, содержащую слова в обратном порядке, объединённые одним пробелом. Обратите внимание, что строка s может содержать начальные или конечные пробелы, или несколько пробелов между двумя словами. В возвращаемой строке должен быть только один пробел между словами. Не включайте каких-либо лишних пробелов. Follow-up: если строковый тип данных - изменяемый в вашем языке, можете ли вы решить задачу in-place c O(1) дополнительной памяти? Пример 1: Input: s = "the sky is blue" Output: "blue is sky the" Пример 2: Input: s = " hello world " Output: "world hello" Пример 3: Input: s = "a good example" Output: "example good a" Ограничения: 1 <= s.length <= 10⁴ s содержит буквы английского алфавита (в нижнем и верхнем регистре), цифры и пробелы ' '. s состоит хотя бы из одного слова. НАШ ЧАТ АЛГОРИТМИСТОВ Решение Так как в питоне строки неизменяемы, мы не можем реализовать решение in-place с O(1) дополнительной памяти. Преобразуем строку в список строк методом split(), автоматически удаляя лишние пробелы - O(n). Используем два указателя: left - индекс первого слова в списке right - индекс последнего слова Пока left меньше right: - меняем местами элементы под индексом left с элементами под индексом right; - сдвигаем указатели навстречу друг другу. В конце объединяем слова списка в строку через один пробел и возвращаем её. Делитесь решением на вашем языке с O(1) дополнительной памяти в комментариях! Сложность O(n) - по времени (сплит и обход списка строк) O(n) - по памяти (храним список строк) Код class Solution: def reverseWords(self, s: str) -> str: words = s.split() left, right = 0, len(words) - 1 while left < right: words[left], words[right] = words[right], words[left] left += 1 right -= 1 return " ".join(words) @algoses

Ваше исследование стоит того, чтобы о нем рассказать На междисциплинарной молодежной конференции Центрального университета см
Ваше исследование стоит того, чтобы о нем рассказать На междисциплинарной молодежной конференции Центрального университета сможете не просто выступить, но и получить публикацию тезисов в РИНЦ и поддержку опытных исследователей. Студентам, аспирантам и молодым ученым доступны 6 секций: гуманитарные и естественные науки, ИИ, математика, бизнес и кибербезопасность. Секцию по кибербезу делаем совместно с факультетом ВМК МГУ. И да, будут не только доклады: пленарные сессии с учеными и инди-группа тоже в программе. Конференция пройдет 17 мая, но тезисы нужно подать до 3 мая Не готовы выступать? Приходите слушать. Регистрация — до 12 мая.

🚀Интенсивы к ШАД: экспресс подготовка за 2 недели Товарищи, первый этап отбора в ШАД начинается уже 30 апреля. Мы открываем
🚀Интенсивы к ШАД: экспресс подготовка за 2 недели Товарищи, первый этап отбора в ШАД начинается уже 30 апреля. Мы открываем наши интенсивы с разбором первого этапа, чтобы вы успели подготовиться за оставшееся время. ➡️Интенсив подойдёт, если: 🔵 поступаешь в ШАД в этом году и хочешь натаскаться за короткий срок 🔵 знаешь школьную программу, ведь этого достаточно для старта, все остальное мы возьмем на себя 🔵 уже готовился, но чувствуешь пробелы в отдельных темах 🔵 хочешь довести решение задач до автоматизма и научиться оформлять решение на полный балл ➡️ Доступны интенсивы по направлениям: ⬇️ Алгоритмы ⬇️ Теория вероятностей ⬇️ Линейная алгебра ⬇️ Математический анализ ⬇️ Дискретная математика ➡️Что внутри каждого интенсива: 🔵 Систематизированная теория + конспекты + ДЗ с проверкой от преподавателя 🔵 8 пробников и их разбор 🔵 Закрытая база заданий ШАД 🔵 Консультации и поддержка преподавателя во время отборочных 🔵 Мок-интервью к собеседованию ➡️Как устроен интенсив: Весь материал, который нужен к первому этапу шад будет разобран до 1 мая. Весь материал, который нужен ко второму этапу будет разобран до 15 мая. На каждом курсе 3 живых семинара. 💰До 18 апреля скидки 35%: Цена за 1 интенсив - 9 150 5 950 ₽ При покупке 2-х интенсивов - 18 300 10 900 ₽ При покупке 3-х интенсивов - 27 450 14 850 ₽ При покупке 4-х интенсивов - 36 600 17 800 ₽ При покупке от трёх и более + дискра в подарок 📌 Времени остается немного, начать подготовку нужно уже сейчас! Для вопросов и записи на курсы напишите менеджеру

В новом ролике обсудим изи темку, как получать офферы на 10 000$. Смотрим! Смотрим! https://www.youtube.com/watch?v=ovYjaPpV6
В новом ролике обсудим изи темку, как получать офферы на 10 000$. Смотрим! Смотрим! https://www.youtube.com/watch?v=ovYjaPpV6pw

Задача с собеседования в Zopsmart Дан массив nums, состоящий из n объектов, окрашенных в красный, белый и синий цвета. Отсортируйте их in-place так, чтобы объекты одного цвета оказались соседними, следуя порядку: красные, белые, синие. Будем использовать целые числа 0, 1 и 2 для обозначения красного, белого и синего, соответственно. Решите задачу без использования встроенной функции сортировки. Follow up: можете ли вы реализовать однопроходный алгоритм, использующий только константную дополнительную память? Пример 1: Input: nums = [2,0,2,1,1,0] Output: [0,0,1,1,2,2] Пример 2: Input: nums = [2,0,1] Output: [0,1,2] Ограничения: n == nums.length 1 <= n <= 300 nums[i] is either 0, 1, or 2. НАШ ЧАТ АЛГОРИТМИСТОВ Сборник алгоритмический задач с собесов Решение Базовое решение: двухпроходный алгоритм с сортировкой подсчётом. При первом проходе - подсчитываем кол-во 0, 1 и 2. При втором - перезаписываем массив, помещая сначала все 0, затем все 1 и, наконец, все 2. Сложность такого алгоритма: O(n) - по времени (проходим по массиву два раза) и O(1) - по памяти (храним только три переменные, перезаписываем массив in-place). Однако, предлагаю реализовать решение с использованием однопроходного алгоритма (follow-up). Для этой задачи подойдёт алгоритм "Национальный флаг Нидерландов", использующийся для сортировки массива с тремя различными значениями за один проход. Основная идея в разделении массива на три части (по типу цветовых границ на флаге) и использовании трёх указателей: low (сначала равен нулю) - отслеживает границу, где должны заканчиваться 0; mid (сначала равен нулю) - проходит по массиву слева направо; high (сначала равен len(nums) - 1) - отслеживает границу, где должны начинаться 2. Идём по массиву указателем mid, пока mid <=high: Если текущий элемент равен 0: меняем его местами с элементом под индексом low и увеличиваем значения обоих указателей; Если текущий элемент равен 1: оставляем его на месте и сдвигаем указатель mid вперёд; Иначе, если текущий элемент равен 2: меняем его местами с элементом под индексом high и уменьшаем значение указателя high. Указатель mid не сдвигается, так как нужно проверить эл-т, который пришёл из правой части. Сложность O(n) - по времени O(1) - по памяти Код class Solution: def sortColors(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ low, mid = 0, 0 high = len(nums) - 1 while mid <= high: if nums[mid] == 0: nums[mid], nums[low] = nums[low], nums[mid] mid += 1 low += 1 elif nums[mid] == 1: mid += 1 else: nums[mid], nums[high] = nums[high], nums[mid] high -= 1 @algoses

Алгоритмические задачи - это не только про найм. Это способ проверить, как ты думаешь: работаешь ли с ограничениями, замечаеш
Алгоритмические задачи - это не только про найм. Это способ проверить, как ты думаешь: работаешь ли с ограничениями, замечаешь ли крайние случаи и умеешь ли упрощать сложное. Сейчас есть возможность сделать это на практике. Решайте задачу от Ильи Царева, руководителя разработки Яндекс Go, до 12.00 12 апреля. Правильное решение даёт шанс попасть на конференцию Day&Night* Городских сервисов Яндекса, которая пройдет 18 апреля в Москве, и выиграть другие призы. Либо через заявку и ожидание, либо интереснее - через челлендж-задачкиии! Задачки тут *День и Ночь

Алгоритмические задачи - это не только про найм. Это способ проверить, как ты думаешь: работаешь ли с ограничениями, замечаеш
Алгоритмические задачи - это не только про найм. Это способ проверить, как ты думаешь: работаешь ли с ограничениями, замечаешь ли крайние случаи и умеешь ли упрощать сложное. Сейчас есть возможность сделать это на практике. Решайте задачу от Ильи Царева, руководителя разработки Яндекс Go, до 12.00 11 апреля. Правильное решение даёт шанс попасть на конференцию Day&Night* Городских сервисов Яндекса, которая пройдет 18 апреля в Москве, и выиграть другие призы. Либо через заявку и ожидание, либо интереснее - через челлендж-задачкиии! Задачки тут *День и Ночь

Задача с собеседования в eBay Дано целое положительное число n. Каждой цифре n присваивается знак в соответствии со следующими правилами: - самой старшей цифре присваивается положительный знак; - каждая следующая цифра имеет знак, противоположный знаку предыдущей цифры. Верните сумму всех цифр с соответствующими знаками. Пример 1: Input: n = 521 Output: 4 Объяснение: (+5) + (-2) + (+1) = 4. Пример 2: Input: n = 111 Output: 1 Объяснение: (+1) + (-1) + (+1) = 1. Пример 3: Input: n = 886996 Output: 0 Объяснение: (+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0. Ограничения: 1 <= n <= 10⁹ НАШ ЧАТ АЛГОРИТМИСТОВ Решение Сначала разберём базовое решение: Заводим переменные: sign - знак текущей цифры, сначала равняется 1 (самая старшая цифра имеет положительный знак) res - для накопления суммы цифр Преобразуем n в строку, проходим по ней слева направо: - присваиваем знак текущей цифре, умножая её на sign, и прибавляем к res; - меняем sign на противоположный, умножая на -1. Теперь оптимизируем решение, используя только математические операции без строки: В цикле проходим по цифрам числа, от младших разрядов к старшим: - остатком от деления получаем последнюю цифру. Обновляем сумму, вычитая из цифры предыдущий результат. - переходим к следующему разряду, применяя целочисленное деление. Формула гарантирует правильное присвоение знаков, так как вычитание предыдущего результата эквивалентно умножению всех накопленных цифр на -1. К примеру, для n = 521: res = 1 - 0 = 1 res = 2 - 1 = 1 res = 5 - (2 - 1) = 4 => +5 - 2 + 1 = 4 Сложность Базовое: O(log n) - по времени (количество цифр в числе) O(log n) - по памяти (храним строку) Оптимизированное: O(log n) - по времени O(1) - по памяти (храним res) Код Базовое: class Solution: def alternateDigitSum(self, n: int) -> int: n_str = str(n) sign = 1 res = 0 for char in n_str: res = res + int(char) * sign sign *= -1 return res Оптимизированное: class Solution: def alternateDigitSum(self, n: int) -> int: res = 0 while n: res = n % 10 - res n //= 10 return res @algoses

Хочешь в магистратуру, которая реально повлияет на твою карьеру? Центральный университет проводит День открытых дверей ИТ-маг
Хочешь в магистратуру, которая реально повлияет на твою карьеру? Центральный университет проводит День открытых дверей ИТ-магистратуры 6 и 7 апреля, онлайн и офлайн в Москве! Ты узнаешь: — как и на какие программы можно поступить в 2026 году; — как можно получить грант до 75%; — как обучение приводит к работе мечты, а не просто диплому. А также тебя ждут экскурсии по кампусу со студентами и ответы на все вопросы. Регистрируйся и разберись, какое направление действительно тебе подходит

Задача с собеседования в eBay Дан целочисленный массив nums. Переместите все нули в его конец, сохранив при этом относительный порядок ненулевых элементов. Обратите внимание, что необходимо сделать это in-place, без создания копии массива. Пример 1: Input: nums = [0,1,0,3,12] Output: [1,3,12,0,0] Пример 2: Input: nums = [0] Output: [0] Ограничения: 1 <= nums.length <= 10⁴ -2³¹ <= nums[i] <= 2³¹ - 1 НАШ ЧАТ АЛГОРИТМИСТОВ Решение Используем метод двух указателей, идём по массиву в одном направлении слева направо: l - позиция, куда нужно поставить следующее ненулевое число r - проходит по всем элементам массива Проходим по массиву указателем r: если r указывает на ненулевой элемент, меняем его местами с элементом на позиции l и двигаем левый указатель. После завершения итерации с индексом r: - все элементы до l будут ненулевыми; - все элементы от l до r включительно - нули. Вывод результата не требуется. Решение соблюдает принцип in-place (работаем с исходным массивом) и сохраняет порядок ненулевых элементов. Сложность O(n) - по времени (проходим по массиву один раз) O(1) - по памяти (используем две переменные, изменяем только исходный массив) Код class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ l = 0 for r in range(len(nums)): if nums[r] != 0: nums[l], nums[r] = nums[r], nums[l] l += 1 @algoses

Хэнбук по алгоритмам ШАД Собрали и разобрали все задачи с собеседований в ШАД. Привели необходимую теорию и задачи для закрепления. Вам же осталось только сесть, разобраться и прорешать - и алгособес в кармане! Еще больше подобных материалов на наших курсах в ШАД, залетаем в ШАД уже этим летом. @postypashki_old

Задача с собеседования в Zoho Дана строка s, разверните (изменив порядок на обратный) только все гласные в строке и верните полученную строку. Гласными являются буквы 'a', 'e', 'i', 'o', и 'u'. Они могут быть как в нижнем, так и в верхнем регистре, а также встречаться более одного раза. Пример 1: Input: "IceCreAm" Output: "AceCreIm" Explanation: Гласные в s: ['I', 'e', 'e', 'A']. После разворота гласных s превращается в "AceCreIm". Пример 2: Input: s = "leetcode" Output: "leotcede" Ограничения: 1 <= s.length <= 3 * 105 s состоит из печатных символов ASCII. НАШ ЧАТ АЛГОРИТМИСТОВ Решение Будем использовать метод двух указателей: left - индекс первого элемента в списке (после преобразования строки в список) right - индекс последнего элемента Гласные храним во множестве для быстрой проверки за O(1). Пока left меньше right: идём по строке в двух направлениях, проверяя символы, на которые указывают left и right. Если символ слева - не гласная: сдвигаем левый указатель; Если символ справа - не гласная: сдвигаем правый указатель; Если оба символа - гласные: меняем их местами и двигаем оба указателя. Так проходим по всему списку, пока указатели не встретятся, и в конце возвращаем полученную строку. Сложность O(n) - по времени (так как проходим по списку один раз) O(n) - по памяти (так как создаём список из символов строки) Код class Solution: def reverseVowels(self, s: str) -> str: s = list(s) vowels = set("aeiouAEIOU") left, right = 0, len(s) - 1 while left < right: if s[left] not in vowels: left += 1 elif s[right] not in vowels: right -= 1 else: s[left], s[right] = s[right], s[left] left += 1 right -= 1 return "".join(s) @algoses

Финальные скидки на карьерные курсы! Камрады, сейчас разгар сезона стажировок. Самое время взять себя в руки и подтянуть хард
Финальные скидки на карьерные курсы! Камрады, сейчас разгар сезона стажировок. Самое время взять себя в руки и подтянуть хард скиллы и проходить собесы. Поэтому мы открываем доступ к нашим карьерным курсам со скидкой 40% 🔥 Курсы подойдут начинающим специалистам, которые хотят прокачаться и уверенно проходить интервью в топовые компании. Обучение построено так, чтобы вы прошли путь от «я ничего не знаю и не понимаю» до «могу уверенно пройти тех собес и получуть оффер». Вы научитесь решать задачи с реальных отборов, сделаете пет-проект и пройдёте пробный собес с нами, чтобы полностью быть готовым к настоящим, а также получите помощь на всех этапах отбора: от резюме до испытательного срока. На карьерных курсах готовим по 4 направлениям: ➡️ алгоритмы старт ➡️ аналитика старт ➡️ машинное обучение старт ➡️ бэкенд разработка старт (если не открываются ссылки, нужно скопировать и вставить в браузер) Что входит в каждый курс:
🔵Разбор донабора Т-Банка и Яндекса на весеннюю стажировку 🔵Мгновенный доступ к лекциям и семинарам - учитесь в своём темпе 🔵ДЗ и пет-проект с обратной связью от преподавателя 🔵Практика на реальных боевых задачах 🔵Банк заданий и вопросов с собеседований в BigTech 🔵Пробный тех.собес с обратной связью от эксперта 🔵Помощь на всех этапах: от составления резюме до испытательного срока 🔵Рефералка в топовую компанию по итогу прохождения курса
📌 Скидка 40% действует до 18 марта Цена за 1 курс - 13 450 7 950 ₽ При покупке от 2-х курсов - 7 250 ₽ за курс При покупке от 3-х и более - 6 450 ₽ за курс Программу и отзывы на курсы можно найти на сайте ➡️Советуем не затягивать. Для вопросов и записи на курсы напишите менеджеру