Представьте, что у вас есть таблица с текстом, где каждая строка - это слово одинаковой длины. Вы хотите удалить как можно меньше столбцов, чтобы в каждой строке буквы шли в алфавитном порядке слева направо. Это как игра в "составь словарь" - нужно оставить только те столбцы, которые не нарушают порядок букв в словах.Подпишитесь, чтобы читать далее
Представьте, что у вас есть несколько слов, записанных друг под другом (как в таблице), и вам нужно удалить как можно меньше столбцов (букв по вертикали), чтобы слова шли в алфавитном порядке сверху вниз. Например, если есть слова ["ca", "bb", "ac"], удалив первый столбец, получим ["a", "b", "c"] - теперь они в правильном порядкеПодпишитесь, чтобы читать далее
Представьте, что у вас есть таблица с текстом, например список слов, записанных один под другим. Вы заметили, что некоторые столбцы (вертикальные последовательности букв) расположены не по алфавиту. Ваша задача - найти и "удалить" все такие неправильные столбцы, чтобы оставить только те, где буквы идут в правильном порядке сверху вниз.Подпишитесь, чтобы читать далее
Представьте, что у вас есть секрет, которым вы делитесь с другом в начале дня. В течение дня люди встречаются парами, и если у одного из них есть секрет, он мгновенно передается другому. К концу дня нужно узнать, кто из всех людей узнал секрет. Это похоже на распространение слухов или вируса в социальной сетиПодпишитесь, чтобы читать далее
Представьте, что у вас есть алгоритм торговли акциями, который говорит вам, когда покупать, держать или продавать. Но иногда хочется "подкрутить" стратегию на нескольких днях, чтобы получить больше прибыли. Именно эту задачу мы решаем — находим оптимальное окно для модификации стратегии, чтобы максимизировать общую прибыль.Подпишитесь, чтобы читать далее
Представьте, что вы трейдер на фондовом рынке. Вы можете не только покупать акции дешевле и продавать дороже (обычная сделка), но и продавать акции, которых у вас нет, по высокой цене, а затем выкупать их дешевле (короткая продажа). Вам нужно максимизировать прибыль, совершив не более k сделок. Задача — найти оптимальную стратегию торговлиПодпишитесь, чтобы читать далее
Представьте, что вы работаете в компании с иерархической структурой, где у каждого сотрудника есть возможность купить акции по специальной цене. Если ваш начальник покупает акции, вы получаете скидку 50% на свои. Задача - максимально эффективно распределить ограниченный бюджет между сотрудниками, чтобы получить максимальную прибыль от разницы между текущей и будущей ценой акций.Подпишитесь, чтобы читать далее
Представьте, что вы следите за ценой акций и хотите найти все периоды, когда цена плавно снижается день за днём ровно на 1 доллар. Например, если цена сегодня 100 долларов, а завтра 99 долларов, послезавтра 98 долларов - это период плавного снижения. Таких периодов может быть много, и нам нужно их все посчитать.Подпишитесь, чтобы читать далее
Представьте, что вы работаете в маркетинговом отделе крупного интернет-магазина. Ежедневно система генерирует сотни промо-кодов, но не все из них соответствуют требованиям безопасности и бизнес-правилам. Ваша задача - автоматизировать проверку купонов, отфильтровав только те, что подходят для использования клиентами.Подпишитесь, чтобы читать далее
Представьте, что вы администрируете чат-систему, где пользователи могут получать упоминания в сообщениях. Но есть нюанс: некоторые пользователи могут быть оффлайн, и тогда упоминание "HERE" (здесь) их не касается, а упоминание "ALL" (всех) касается всех, даже оффлайн пользователей. Как правильно подсчитать, сколько раз каждый пользователь был упомянут?Подпишитесь, чтобы читать далее
Представьте, что вы смотрите на город сверху и видите только крыши зданий. Некоторые здания полностью окружены другими — у них есть соседи слева, справа, сверху и снизу. Именно такие "защищенные" здания мы и ищем в этой задачеПодпишитесь, чтобы читать далее
Представьте, что у вас есть ряд компьютеров с разными уровнями защиты. Компьютер 0 уже разблокирован, а для разблокировки каждого следующего компьютера вам нужно использовать пароль от компьютера с меньшей сложностью защиты, который уже разблокирован. Задача - найти, сколькими способами можно разблокировать все компьютеры в правильном порядке.Подпишитесь, чтобы читать далее
Представьте, что вам нужно быстро посчитать, сколько нечетных чисел находится между двумя числами, например, от 10 до 100. Можно, конечно, перебрать все числа и проверить каждое, но это долго, особенно если числа большие. Есть математическая формула, которая позволяет сделать это мгновенноПодпишитесь, чтобы читать далее
Представьте, что у вас есть ряд чисел, и вы хотите разбить его на отрезки, но с условием: в каждом отрезке разница между самым большим и самым маленьким числом не должна превышать заданное значение k. Эта задача возникает, например, при группировке данных с похожими значениями или при разделении временных рядов на однородные интервалы.Подпишитесь, чтобы читать далее
Представьте, что у вас есть ряд мешков с монетами, и вам нужно разрезать этот ряд в каком-то месте. Вы хотите, чтобы разница между суммой монет слева и справа от разреза была чётной. Сколько существует таких мест для разреза?Подпишитесь, чтобы читать далее
Представьте себе многополосную дорогу, где каждая машина движется либо влево, либо вправо, либо стоит на месте. Машины, движущиеся навстречу друг другу, рано или поздно столкнутся. В этой задаче нам нужно подсчитать общее количество столкновений, учитывая, что разные типы столкновений дают разное количество очков.Подпишитесь, чтобы читать далее
Представьте, что у вас есть набор точек, нарисованных на листе в клеточку, и вам нужно соединить четыре точки так, чтобы получилась трапеция, у которой хотя бы одна пара сторон горизонтальна. Сколько таких трапеций можно построить? Эта задача учит нас находить закономерности в геометрии и эффективно считать комбинации.Подпишитесь, чтобы читать далее
Представьте, что вы проектируете систему охраны для большого склада. У вас есть охранники, которые могут видеть во все стороны, и стены, которые блокируют обзор. Вам нужно определить, какие участки склада остаются без наблюдения, чтобы разместить там дополнительные камеры или охранников.Подпишитесь, чтобы читать далее
Представьте, что у вас есть цепочка из бумажек, на каждой написано число (например: 1-2-3-4-5), и вам нужно выкинуть те бумажки, номера которых есть в вашем "списке запрещенных чисел" (например, [1,2,3]). В итоге у вас останется цепочка 4-5.Подпишитесь, чтобы читать далее
Представьте, что у вас есть идеальная коллекция марок от 0 до n-1, каждая в единственном экземпляре. Но однажды вы обнаруживаете, что две марки попали в коллекцию по второму разу. Задача - найти эти "дублирующие" маркиПодпишитесь, чтобы читать далее