Веб-версияОткрыть в Telegram
ААлгоритмы - Чат

Алгоритмы - Чат

@algoses_chat · группа · Технологии · в индексе с 2026-04-15
812участников+1 за неделю
5пишущих за 30 дней
24сообщений за 30 дней
1 674сообщений в индексе
А
Всем привет, подскажите пж эффективный план изучения алгоритмов для собесов
А
Фотография
нажмите — покажем
Хочешь начать карьеру в ИТ или уже сделал первый шаг и планируешь расти дальше? МТС True Tech Champ 2026 — хорошая точка ускорения Это один из крупнейших ИТ-чемпионатов России, где ежегодно собираются студенты и разработчики со всей страны. Здесь ты попадаешь в поле зрения ИТ-команд. Алгоритмический трек — это прокачка структур данных и алгоритмов на задачах уровня технических собеседований. По сути, прямая подготовка к интервью в сильные компании. Трек программирования роботов — командная работа над реальным проектом: писать код, тестировать, дорабатывать под новые условия. Такой опыт заметно усиливает резюме. Что ты получаешь для старта: ✔️сертификат участника, который добавишь в портфолио; ✔️практику живых соревнований и знакомство с ИТ-сообществом из разных городов; ✔️шанс, что тебя заметят рекрутеры и крупные ИТ-компании. Зарегистрируйся на алгоритмический трек до 27 сентября, а на программирование роботов — до 13 сентября, и сделай следующий шаг в ИТ вместе с True Tech Champ 2026.
10 · 2.6K ·
А
Задача с собеседования в Zepto Есть автомобиль с определённым количеством посадочных мест (capacity). Автомобиль движется только на восток (т.е. он не может развернуться и поехать на запад). Даны целое число capacity и массив trips, где trips[i] = [numPassengersᵢ, fromᵢ, toᵢ] означает, что для i-ой поездки нужно забрать numPassengersᵢ пассажиров в точке fromᵢ и высадить их в точке toᵢ, соответственно. Координаты указаны в километрах к востоку от начального положения автомобиля. Верните true, если возможно забрать и высадить всех пассажиров для всех данных поездок, иначе верните false. Пример 1: Input: trips = [ [2,1,5], [3,3,7] ], capacity = 4 Output: false Пример 2: Input: trips = [ [2,1,5], [3,3,7] ], capacity = 5 Output: true Ограничения: 1 <= trips.length <= 1000 trips[i].length == 3 1 <= numPassengersᵢ <= 100 0 <= fromᵢ < toᵢ <= 1000 1 <= capacity <= 10⁵ НАШ ЧАТ АЛГОРИТМИСТОВ Решение С учётом ограничений (0 <= fromᵢ < toᵢ <= 1000) можем использовать массив разностей и префиксную сумму для оптимального решения за O(n + k), где n - кол-во поездок, а k - максимальная координата. Нам не нужно хранить загрузку автомобиля на каждом километре, а только её изменения в точках посадки и высадки (так как между этими точками кол-во пассажиров не меняется) в массиве разностей. Затем пройдём по массиву, накапливая сумму изменений, которая и показывает текущую загрузку. Останется проверить, не превысила ли она вместимость автомобиля. Находим самую дальнюю точку маршрута (max_location) и создаём массив passenger_changes, размер которого равен max_location + 1, где passenger_changes[i] - значение, на сколько изменится загрузка автомобиля на i-м километре от начальной точки. Проходим по массиву trips, записывая изменения загрузки: - добавляем пассажиров при посадке в точке start; - уменьшаем численность пассажиров при высадке в точке end. Теперь проверим, не стало ли пассажиров в какой-то момент больше, чем посадочных мест. Проходим по всем километрам, накапливая с
10 · 3.3K ·
А
Треш на алгоритмических собеседованиях на топовые офферы и магистратуры в CS Мы опросили наших выпускников программы алгоритмы про, что им встречалось по каждому направлению отсюда. И вот что из этого вышло. Задача Андрея (4 курс БГУ ФПМИ) на собеседовании в магистратуру СКН. Условие: Даны n исходных строк и m строк-запросов. Для каждой строки-запроса s нужно определить, существует ли среди исходных строк строка t, такая что: len(t) = len(s) и t отличается от s ровно в одной позиции. Строки состоят только из символов a, b, c. На каждый запрос выведите YES, если такая строка существует, иначе NO. Ограничения: n, m <= 3e5, суммарная длина всех строк не превышает 6e5 Идея решения: Для каждого запроса идём по бору слева направо и храним два состояния: сколько несовпадений уже было - 0 или 1. На каждой позиции: можно пойти по ребру с тем же символом: 1) если ошибка ещё не использована, можно попробовать перейти по одному из двух других символов и отметить, что одно несовпадение уже есть. 2) если ошибка ещё не использована, можно попробовать перейти по одному из двух других символов и отметить, что одно несовпадение уже есть. Код с решением задачи. Задача на собеседование в GOOGLE на позицию SWE разработчика с зп 8000$ Условие: Дана перестановка чисел от 1 до n. Из неё удалили два элемента, после чего оставшиеся n - 2 чисел разделили на две непустые части. Программа запускается два раза. При первом запуске дана левая часть последовательности. Нужно вывести строку-памятку длиной не более 1000 символов. При втором запуске дана эта памятка и правая часть последовательности. Нужно определить два числа от 1 до n, которых нет ни в левой, ни в правой части. Ограничение: 4 <= n <= 3e5. Идея решения: Каждому числу i сопоставляем случайный 64- битный хеш (можно просто рандом число назначить mt19937 например) h(i). На первом запуске считаем: H_left = sum(h(x)) по всем x из левой части и сохраняем H_left в памятку. На втором запуске считаем: H_missing = sum(h(i)) для i от 1
25 · 2.8K ·
А
Файл
Все алгозадачи с Яндексa.pdf · 717 КБ · нажмите — покажем
Собрали все задачи с алгосекции в Яндексе в одном файле с разбором частых ошибок, все это закрывают наши курсы по алгоритмам. Сохраняй и делись с друзьями такой годнотой! 🔥 Кстати а контест со стажировки уже разобран на соответствующих наших курсах ПРО. ➡ Записаться. Подписаться: @algoses
140 · 3.1K ·
А
Как попасть в HFT компанию HFT компании зарабатывают на небольших изменениях цен, осуществляя тысячи или даже миллионы транзакций в день. В этих компаниях работают не только разработчики, но и много других специалистов с разной квалификацией. Один из выпускников наших курсов не первый год работает в этой сфере на позициях Quantitative Researcher и ML Researcher, специально для вас, товарищи, попросил его поделиться своим опытом. Далее идет оригинальный текст. Существует два вида HFT компаний. Одни зарабатывают много, а другие по меркам HFT достаточно мало, например это может быть компании, которые зарабатывают на крипте. В основном HFT компаний, которые находятся на территории РФ считаются не такими сильными, и платят там мало в рамках HFT, но сильно больше чем остальным на рынке it. Большинство топовых компаний находятся в штатах и Европе. В топовые компании отобраться конечно же сложнее. Также вам нужно помнить, что в большинстве HFT компаниях сильные переработки, сотрудники там надолго не задерживаются, отбор кандидатов может быть как и очень жестким, так и на уровне остальных IT компаний. Перечислим парочку HFT компаниям, в которые весьма реально попасть гражданину РФ. 1. Pinely: Активно спонсирует разные олимпиады в духе ICPC. Очень много русскоговорящих сотрудников, по моим наблюдениям их большинство. Там работают такие легенды как Михаил Тихомиров, Михаил Ипатов (чемпионы мира по ICPC и не только). Компания определенно считается хорошей и скажу так, что весьма реально туда устроиться, например через стажировки. Кстати там много выпускников ШАДа, потому можно и рефералку пробить через знакомых. 2. Teza: Вообще компания американская, но есть филиал в Ереване, компания в целом неплохая, платят достойные деньги, переработок сильных нет, собесы адекватные. Но скорее всего вы там реально большие деньги зарабатывать не будете. 3. Àlber Blanc: Пожалуй самая успешная русскоговорящая компания, платят кстати достаточно хорошо, но отбор непростой и скорее всего пр
73 · 3K ·
А
Как и зачем тащить ICPC ICPC в большинстве регионов проходит в 4 этапа. Даты зависят от региона, но квалификация (если есть) проходит в октябре, региональный этап — в ноябре, всероссийский+СНГ — в середине декабря, мировой финал — осенью. Поэтому подготовку лучше начинать уже сейчас. Участвовать стоит как минимум потому что олимпиадникам намного легче найти работу. Например, успешные олимпиадники могут пройти на стажировку в Т-банк, Яндекс по фаст-треку или вообще устроиться в HFT на начальную зарплату $120k в год, рекрутеры сами стучаться в лс. Конечно, этот путь только для тех, кому нравиться решать задачи по алгоритмам, иначе быстро выгорите. Поиск команды Для команды вам нужно найти еще двух человек из вашего университета. С этими людьми вы будете регулярно тренироваться как в бойцовском клубе. Для начала поспрашивайте среди ваших знакомых, особенно среди тех, кто когда-то занимался олимпиадами. Затем поспрашивайте в чатах вуза и посмотрите топ рейтинга на codeforces для вашего универа (там кстати есть возможность писать людям). Если в вашем универе есть клуб по олимпиадам — сходите туда и познакомьтесь с другими его участниками. Так за 1-2 месяца вы скорее всего собререте команду. В потенциальных сокомандниках смотрите главным образом на мотивацию, а не на текущий уровень. При очень большом желание за 4 года можно с нуля получить хоть золото на мировом финале, а при его отсутствие не получится пройти пройти даже в полуфинал. Индивидуальная подготовка Главным образом решайте задачи с архива codeforces с рейтингом примерно на 200 выше вашего и участвуйте в контестах, стараясь их вообще не пропускать. После каждого контеста дорешивайте 1-2 задачи, которые не смогли решить во время него. Если нужно — читайте editorial. Именно в момент решения этих задач вы прокачиваетесь и узнаете новые идеи, поэтому эту часть пропускать нельзя. Помимо кф, вам нужно будет знать большинство классических тем вроде динамики, DFS/BFS, теории игр и т.д. Для их изучения отлично подход
86 · 5.5K ·
А
Как стать квантом Сегодня многие талантливые амбициозные ребята хотят попасть в хфт и стать квантом. И это неудивительно, ведь хфт может предложить интересные задачи и вызовы, хороший доход, а также крутую команду и хорошие условия труда: в частности нередко удаленку. Кто работает в хфт На самом деле в фонде ровно такие же роли как и в других компаниях: аналитик, мл разработчик, дата инженер и так далее. Нередко роли размыты, а специалисты гибридны, потому что немало фондов - все таки стартапы со штатом в 50 сотрудников, где каждый должен уметь выполнять широкий пул задач. В силу специфики задач фондам нужны только умные ребята и в силу статуса стартапа они могут позволить себе проводить относительно жесткие собесы с алгоритмами, математикой и эскортницами. Так как же стать квантом Для начала нужно освоить какую-то специальность: аналитика, мл, разработчик, дата инженер. А также выучить математику и алгоритмы, чтобы проходить собесы и знать свою специальность на хорошем уровне. Еще нужно что-то иметь из следующего: — относительно успешный олимпиадный опыт на международном уровне или уровне страны: хакатоны, соревнования, олимпиады по математике, программированию, ds/мл и так далее — диплом ШАДа или учеба там (ОЧЕНЬ МНОГО РЕБЯТ ОТСЮДА) — phd или быть в процессе его получения — работа в лаборатории и статьи — опыт работы по специальности или другие сопоставимые достижения Как готовиться к собесам Для Quant-собеседований критически важна математика: теорвер, статистика, линейная алгебра, матан и логика - базовый минимум. В HFT-компаниях дополнительно могут спросить стохастические дифференциальные уравнения, диффуры и вариационное исчисление. Готовиться лучше через решение реальных задач с собесов: например, на Glassdoor или в подборках Quant Technical Interview Questions. Еще много прикольных книжек для америкосов по типу этих. Собесы часто идут на английском, поэтому нужно довести решение до автопилота. Алгоритмы тоже обязательны, причём в HFT задачи слож
69 · 2.5K ·
  1. V
    Честно, все это полная хрень. У меня NWERC и победа на хакатоне, но я просто не прохожу дальше cv screening
Вся ветка · 1 ответ →
А
Задача с собеседования в Zeta Зима близко! Во время соревнования ваша первая задача - спроектировать стандартный обогреватель с фиксированным радиусом обогрева, чтобы обогреть все дома. Каждый дом может быть обогрет, если он находится в пределах радиуса действия обогревателя. Даны позиции домов и обогревателей на горизонтальной прямой. Верните минимальный стандартный радиус обогревателей, чтобы они могли покрыть все дома. Обратите внимание, что все обогреватели соответствуют вашему стандарту радиуса, и радиус зоны нагрева будет одинаковым. Пример 1: Input: houses = [1,2,3], heaters = [2] Output: 1 Explanation: Единственный обогреватель был установлен в позиции 2, и при использовании стандарта радиуса 1, все дома могут быть обогреты. Пример 2: Input: houses = [1,2,3,4], heaters = [1,4] Output: 1 Explanation: Два обогревателя были установлены в позициях 1 и 4. Нам нужно использовать стандарт радиуса 1, тогда все дома можно будет обогреть. Пример 3: Input: houses = [1,5], heaters = [2] Output: 3 Ограничения: 1 <= houses.length, heaters.length <= 3 * 10⁴ 1 <= houses[i], heaters[i] <= 10⁹ НАШ ЧАТ АЛГОРИТМИСТОВ Решение Итак, каждый обогреватель греет на фиксированное расстояние слева и справа, нужно найти минимальный радиус, чтобы все дома могли быть согреты. Сортируем массивы houses и heaters, чтобы использовать метод двух указателей. Так как дома отсортированы, индекс ближайшего обогревателя для следующего дома не будет меньше, чем индекс для предыдущего дома => указатель по обогревателям движется монотонно вправо. Указатели: pos - индекс текущего кандидата в ближайший обогреватель house - неявный указатель по домам в цикле for Проходим по массиву houses, ища ближайший обогреватель для каждого дома: Пока следующий обогреватель находится ближе к дому, чем текущий, или на том же расстоянии: - сдвигаем pos вправо, переходя к следующему обогревателю. Используем abs(), так как heaters[pos] может быть как слева (в таком случае heaters[pos] - house будет имет
8 · 2.3K ·
А
Видео
generated_video (4).mp4 · 4.9 МБ · нажмите — покажем
❗️ Яндекс открыл Intern Week Offer на стажировку, где всего за неделю ты можешь получить оффер, а не растягивать процесс на месяца. Залетаем с ноги в Яндекс: регистрация проходит до октября, а задания уже лежат тут. А чтобы ты точно получил оффер, мы уже сделали разбор контеста и технических этапов, они доступны нашим студентам на наших курсах: ➡️ алгоритмы про ➡️ фронтенд и бэкенд ➡️ бэкенд разработка про➡️ бэкенд ➡️ машинное обучение про ➡️ МЛ ➡️ ИИ-агенты ПРО ➡️ МЛ Помимо разборов, которые проходят все скрытые тесты на наличие ИИ в решениях, на наших курсах вы получаете: 🔽 Доступ к закрытой базе собесов и тестовых заданий 🔽 Разбор стажировки ДС Авито (на МЛ ПРО и ИИ агенты ПРО) 🔽 Курс по выходу на доход в валюте 🔽 Гарантия оффера 🔽 Рефералка в бигтех после защиты пет-проекта 🔽 mock-собеседования с обратной связью Успей написать администратору и не откладывай: задания могут скоро поменять!
33 · 2.5K ·
А
Полный цикл отбора в Spectral на SWE (HFT) Недавно рассказывали про отбор в Fast Forward на кванта, теперь расскажем как проходит отбор на SWE. Здесь уже намного меньше математики и ML, зато гораздо больше плюсов, алгоритмов, многопоточности, сетей и понимания того, как код работает непосредственно на железе. Полтора года назад наш выпускник проходил туда отбор, делимся как прошли этапы. Условия (hr созвон) Первый созвон был с hr, поспрашивали про опыт, проекты и достижения. Здесь, как и на кванта, стоит заранее подготовить нормальный рассказ про себя и мотивацию идти именно в HFT. Желательно уметь объяснить, почему вам интересна низкоуровневая разработка, оптимизация и работа с производительностью. Касательно зп назвали только диапазон (это было полтора года назад и вижу что вилки сильно уже изменились, тогда мне назвали 50-60к долларов) Тестовое На тестовое также лучше заранее выделить почти целый день. Здесь уже задача была ближе к разработке инфраструктуры для обработки биржевых данных. Нужно было реализовать обработку большого потока событий и поддерживать некоторое состояние системы. Сам алгоритм был достаточно простой, основной упор скорее был на качество реализации и производительность. Смотрели на количество аллокаций, копирований, выбор структур данных и в целом насколько человек понимает, где код может начать тормозить. То есть здесь опять же главное не намудрить с архитектурой, а написать достаточно простое и быстрое решение. Первый тех собес Первый тех собес был в основном посвящен C++ и низкоуровневой части. По времени примерно полтора часа, при этом ощущение опять же что жесткого тайминга особо нет. Очень много спрашивали по самому языку: работа памяти, object lifetime, move semantics, виртуальные методы, smart pointers, RAII, undefined behavior. Отдельно достаточно подробно проходились по STL и внутреннему устройству основных структур данных. Например могли спросить как устроены vector, map, unordered_map, чем они отличаются не только по асимптот
32 · 2.7K ·
А
Ссылка
нажмите — покажем
Задача с собеседования в Zoho Даны две строки s и t. Определите, являются ли они изоморфными. Две строки s и t называют изоморфными, если символы в строке s можно заменить так, чтобы получить t. Все вхождения определённого символа должны быть заменены другим символом с сохранением порядка следования символов. Никакие два разных символа не могут заменяться одним и тем же символом, однако, символ может быть заменён на самого себя. Пример 1: Input: s = "egg", t = "add" Output: true Explanation: Строки s и t можно сделать идентичными, если: Заменить "e" на "a". Заменить "g" на "d". Пример 2: Input: s = "f11", t = "b23" Output: false Explanation: Строки s и t невозможно сделать идентичными, так как символ "1" должен соответствовать одновременно и "2" и, "3". Пример 3: Input: s = "paper", t = "title" Output: true Ограничения: 1 <= s.length <= 5 * 10⁴ t.length == s.length s и t состоят из любых допустимых символов ASCII. НАШ ЧАТ АЛГОРИТМИСТОВ Решение Для изоморфности двух строк необходимо, чтобы обеспечивалось взаимно-однозначное соответствие: - каждому эл-ту первой строки соответствует ровно один эл-т второй строки; - и наоборот, каждый эл-т второй строки связан ровно с одним эл-том первой строки. Создаём два словаря для двусторонней проверки соответствия: s_to_t - гарантирует, что один и тот же символ из s не будет превращён в разные символы в t t_to_s - гарантирует обратное условие: один и тот же символ из t не будет получаться из разных символов s Проходим по двум строкам одновременно с помощью функции zip(), объединяющей эл-ты из двух строк в пары символов: Если char_s уже встречался ранее и соответствовал другому символу, а не char_t ИЛИ Если char_t уже был получен из другого символа строки s, а не из char_s: - изоморфность нарушена => возвращаем False. Иначе - записываем новые двухсторонние соответствия: - в какой символ t превращается символ из s; - из какого символа s получается символ t. Если правила ни разу не нарушились, значит, строки изоморфны
8 · 2.6K ·
  1. E
    return len(set(s))==len(set(t))==len(set(zip(s,t)))
Вся ветка · 1 ответ →
  1. E
    Родиться вумным, как вутка!)
Вся ветка · 1 ответ →
А
Задача с собеседования в Zoho Даны две строки: s и goal. Верните true, если можно поменять местами два символа в строке s так, чтобы в результате она стала равна строке goal. В противном случае верните false. Под обменом символов понимается выбор двух индексов i и j (индексация начинается с 0) таких, что i != j, и перестановка символов s[i] и s[j] местами. Например, обмен символов по индексам 0 и 2 в "abcd" даёт "cbad". Пример 1: Input: s = "ab", goal = "ba" Output: true Explanation: Вы можете поменять местами s[0] = "a" and s[1] = "b", чтобы получить "ba", что равно goal. Пример 2: Input: s = "ab", goal = "ab" Output: false Explanation: Единственные символы, которые можно поменять местами - это s[0] = "a" and s[1] = "b", в результате чего "ba" != goal. Пример 3: Input: s = "aa", goal = "aa" Output: true Explanation: Вы можете поменять местами s[0] = "a" and s[1] = "a", чтобы получить "aa", что равно goal. Ограничения: 1 <= s.length, goal.length <= 2 * 10⁴ s и goal состоят из строчных букв. НАШ ЧАТ АЛГОРИТМИСТОВ Решение Итак, нам нужно обменять ровно две позиции строки s, в которых s и goal различаются; остальные позиции должны совпадать сразу. => различий между строками должно быть либо 2 (так как один обмен исправляет только два различия), либо 0 (то есть строки уже эквивалентны). Обрабатываем следующие случаи: - Если длина s и goal различается: False, так как обмен символов не изменит разницу в кол-ве символов. - Если строки уже эквивалентны: Необходимо наличие повторяющегося символа (проверяем, есть ли он, через сравнение строки со множеством), так как только обмен одинаковых символов не изменит строку s, уже равную goal. В этом случае возвращается true, иначе - false. - Если строки разные: Ищем две различающиеся позиции и проверяем, можно ли поменять два символа ровно одним обменом, чтобы получить goal. diff - массив индексов, где s[i] != goal[i]. Проходим по строке s: Если символ по текущему индексу в s отличается от символа по текущему индексу
7 · 1.1K ·
А
Фотография
нажмите — покажем
Фотография
нажмите — покажем
Фотография
нажмите — покажем
Ты поступишь в ШАД Старт набора на наши ШАДовские курсы: без воды и лишней теории, 3 месяца семинаров, пробников и лекций! За результат отвечаем ⭐️пройдешь курсы, но не поступишь в ШАД - вернем деньги⭐️ Программы и подробности: ⏩Алгоритмы ⏩Анализ данных ⏩Линейная алгебра ⏩Теория вероятностей ⏩Дискретная математика ⏩Математический анализ Можно взять один курс, или комбо по спеццене! Даже все 6 сразу — программа выстроена так, что ты все успеешь. Не веришь — чекай отзывы наших выпускников! Курсы для тебя, если ты: 🔵Только задумался о подготовке 🔵Уже готовился, но не уверен в себе 🔵Подзабыл математику, но хочешь в ШАД 🔵Хочешь совмещать подготовку с работой 🔵Готовишься к собесам в BigTech, АА и маги Записи и материалы остаются навсегда, а сдать ДЗ, пробники, пройти мок-собес и получить фидбэк куратора можно после окончания курса! Только у нас ты получишь: 🔵Онлайн-семинары, лекции, ДЗ и пробники с проверкой 🔵Разбор отбора 2027, саппорт с анкетой и мотивацией 🔵Доступ к закрытой базе знаний и протоколам ШАД 🔵Пробное тестирование, экзамен и собеседование 🔵Сборник всех задач ШАДа для самоподготовки Для вопросов и записи пиши менджеру: @menshe_treh ▶️
3 · 842 ·
А
Фотография
нажмите — покажем
Собеседование по алгоритмам в ШАД 2026 На прикрепленном фото задачи, которые спрашивали в этом году. Если хотите добавить задачу с вашего собеседования пишите @vice22821. Взамен могу провести консультацию по любым вопросам или поделиться своими материалами. Никаких изменений с форматом в этом году почти не было, все также одна задача на полчаса, нужно решение и код, могли быть доп вопросы и как бонус предлагался чужой код на оценку. Но формат достаточно интенсивный и для подготовки мало просто прорешать 200 задач с литкода. Нужно научиться быстро распознать паттерны, сходу писать оптимальный код, параллельно поясняя решение. Именно к этому готовят наши курсы. Как раз на семинарах и мок собесах мы учимся рассказывать решения вслух, получаем развернутый фидбэк и учимся действовать в сложных ситуация: что делать если не понимаешь условие, не можешь придумать решение или получил неожиданный вопрос. На наших курсах индивидуальный и структурированный подход, а не тупая алго дрочка. Записывайся и поступай с гарантией! ➡ Записаться Подписаться: @algoses
34 · 2.5K ·
А
Задача с собеседования в Josh Technology Обмен определяется как выбор двух различных позиций в массиве и перестановка их значений местами. Круговой массив определяется как массив, в котором первый и последний элементы считаются соседними. Дан бинарный круговой массив nums. Верните минимальное количество обменов, необходимых для того, чтобы сгруппировать все 1, присутствующие в массиве, вместе в любом месте. Пример 1: Input: nums = [0,1,0,1,1,0,0] Output: 1 Explanation: Есть несколько способов сгруппировать все 1 вместе: [0,0,1,1,1,0,0] с использованием 1 обмена. [0,1,1,1,0,0,0] с использованием 1 обмена. [1,1,0,0,0,0,1] с использованием 2 обменов (используя круговое свойство массива). Не существует способа сгруппировать все 1 вместе, не выполнив ни одного обмена. Таким образом, минимальное необходимое количество обменов - 1. Пример 2: Input: nums = [0,1,1,1,0,0,1,1,0] Output: 2 Explanation: Есть несколько способов сгруппировать все 1 вместе: [1,1,1,0,0,0,0,1,1] с использованием 2 обменов (используя круговое свойство массива). [1,1,1,1,1,0,0,0,0] с использованием 2 обменов. Не существует способа сгруппировать все 1 вместе с использованием 0 или 1 обменов. Таким образом, минимальное необходимое количество обменов - 2. Пример 3: Input: nums = [1,1,0,0,1] Output: 0 Explanation: Все 1 уже сгруппированы вместе, учитывая круговое свойство массива. Таким образом, минимальное количество обменов - 0. Ограничения: 1 <= nums.length <= 10⁵ nums[i] равно 0 или 1. НАШ ЧАТ АЛГОРИТМИСТОВ Решение Обратим внимание, что кол-во единиц, которые нужно сгруппировать, фиксировано и равняется общему кол-ву единиц в массиве (total_ones). Так как единицы могут быть разбросаны по массиву, необходимо проверить каждый подмассив длиной total_ones и определить среди них тот, в котором уже находится максимальное кол-во единиц (а следовательно потребуется меньше обменов). => Кол-во необходимых обменов равняется кол-ву нулей в подмассиве с максимумом единиц (кол-во нулей = total_ones - макси
7 · 573 ·

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем