Посчитайте количество вложенных друг в друга отрезков

На прямой даны N отрезков (в реальной жизни это могут быть промежутки времени, например), которые заданы координатами их левого и правого конца. Для каждого данного отрезка необходимо узнать, сколько из…

Обложка поста

Реализуйте свою функцию нахождения квадратного корня

Реализуйте функцию нахождения квадратного корня, не используя предоставляемые языком функции возведения в степень и извлечения корня.

Обложка поста

События и курсы

Найдите максимальную по длине палиндромную подстроку

Классическая задача. Найдите в данной вам строке максимальную по длине подстроку, которая является палиндромом (то есть читается слева направо и справа налево одинаково). Предложите как можно более эффективный алгоритм.

Обложка поста

Материалы по продвинутым алгоритмам и структурам данных

Знание алгоритмов и структур данных — вот один из ключевых навыков программиста. Промышленные разработчики могут ограничиться и базой: стеки, очереди, хеш-таблицы, алгоритмы сортировки, поиск в глубину и т.д. Но в…

Вакансии, где нужны знания по теме «Алгоритмы»

Обложка поста

Задача про кассира-программиста

Задача, которую давали на собеседованиях в Apple. Представьте, что вы получили работу кассира в магазине. Ваш босс случайно выяснил, что вы обладаете навыками программиста, и захотел, чтобы вы помогли ему написать…

Обложка поста

Задача про слияние промежутков в календаре

Предположим, компания, в которой вы работаете, разрабатывает электронный календарь. В календаре есть функция, показывающая, когда различные команды программистов будут заняты на какой-либо встрече.

Бесплатные материалы для программистов

Огромная база ссылок на книги, статьи, туториалы, онлайн-курсы, интерактивные обучалки, подкасты — всё только бесплатное.

Обложка поста

Новый инструмент «Herbie» автоматически переписывает арифметические выражения, чтобы минимизировать потери от округлений чисел с плавающей точкой

Код, который работает с числами с плавающей точкой, может выглядеть вполне правильным, но тем не менее производить некорректные вычисления из-за ошибок округления. Вашингтонский университет предлагает решение — Herbie — инструмент…

Задача о максимальном произведении трех чисел массива

Задача, которую предлагали на собеседованиях в Apple: у вас есть массив с целыми числами, в том числе и отрицательными, вам нужно найти самое большое произведение 3 чисел из этого массива.

Обложка поста

Красивые и наглядные анимации и диаграммы

Лучший способ объяснить что-то — нарисовать диаграмму, картинку или, лучше всего, создать интерактивную. Кроме того, красивые и подробные диаграммы или занимательные анимации просто интересно рассматривать.

Обложка поста

123 задачи с IT-собеседований с разбором решений

Самые популярные задачи с IT-собеседований — более 100 логических задач, IT-кейсов и заданий по разработке для профессиональных программистов (с ответами!).

Обложка поста

Большой сборник завораживающих визуализаций известных алгоритмов

Возможности человеческого разума ограничены…

Алгоритмы и структуры данных для начинающих: сортировка

В этой части мы посмотрим на пять основных алгоритмов сортировки данных в массиве. Начнем с самого простого — сортировки пузырьком — и закончим «быстрой сортировкой» (quicksort). Для каждого алгоритма, кроме…

Обложка поста

Алгоритмы и структуры данных для начинающих: множества

Множество — это коллекция, которая реализует основные математические операции над множествами: пересечения (intersection), объединение (union), разность (difference) и симметрическая разность (symmetric difference). Каждый из алгоритмов мы разберем в соответствующем разделе.

Обложка поста

Алгоритмы и структуры данных для начинающих: двоичное дерево поиска

До сих пор мы рассматривали структуры данных, данные в которых располагаются линейно. В связном списке — от первого узла к единственному последнему. В динамическом массиве — в виде непрерывного блока. В этой…

Обложка поста

Алгоритмы и структуры данных для начинающих: стеки и очереди

В предыдущих частях мы рассматривали базовые структуры данных, которые, по сути, являлись надстройками над массивом. В этой статье мы добавим к коллекциям простые операции и посмотрим, как это повлияет на…

Обложка поста

Алгоритмы и структуры данных для начинающих: динамический массив

Иногда от коллекции требуется неограниченная вместимость и простота использования списка, но при этом константное время доступа к произвольному элементу, как в массиве. В этом случае используется список на основе массива…

Обложка поста
Обложка поста

В MIT разработали алгоритм, фильтрующий препятствия на фотографиях

Ученые Массачусетского технологического университета на днях изобрели алгоритм, способный убирать препятствия (вроде заборов и окон) с фотографий. На вход он принимает некоторое количество фотографий, снятых с небольшим смещением относительно друг…

Обложка поста

Алгоритмы и структуры данных для начинающих: связный список

Первая структура данных, которую мы рассмотрим — связный список. На то есть две причины: первое — связный список используется практически везде — от ОС до игр, и второе — на его…

Обложка поста

Алгоритмы и структуры данных для начинающих: сложность алгоритмов

Вне зависимости от того, являетесь ли вы студентом или работающим программистом, и от того, в какой области вы работаете, знание алгоритмов и структур данных необходимо. Это важные строительные блоки для…

Доказательство того, что 40-летний алгоритм является оптимальным, будет облегчением для специалистов по вычислительным системам

Пишет Ларри Хардести | Новостное бюро MIT   Сравнение геномов различных видов или различных представителей одного вида — основа большей части современной биологии. Последовательности ДНК, встречающиеся у разных видов, могут…

Обложка поста

Алгоритмы интеллектуального анализа данных

Рассказывает Рэй Ли, автор блога raily.net Сегодня я постараюсь простым языком объяснить 10 самых важных алгоритмов интеллектуального анализа данных, по результатам  опросов трех разных групп экспертов в этом исследовании. После того…

Как эффективно подготовиться к олимпиадам по программированию?

Скоро стартует вторая олимпиада Типичного программиста, и мы решили спросить у экспертов, как можно успешно к подготовится к подобным соревнованиям.

Обложка поста

Какие алгоритмы должен знать уважающий себя программист?

В этом выпуске попросили наших экспертов перечислить алгоритмы, которые, по их мнению, должен знать каждый уважающий себя программист.

Обложка поста

Опишите алгоритм для нахождения миллиона наименьших чисел в наборе из миллиарда чисел. Память компьютера позволяет хранить весь миллиард чисел

Существует много способов решить эту задачу. Мы остановимся только на трех — сортировка, минимум кучи и ранжирование.

Обложка поста

Подборка полезных алгоритмов для собеседований: задачи на строки

Мы сделали большую подборку алгоритмов работы со строками, которые помогут вам подготовиться к собеседованиям. Решайте наши новые задачи на строки…

Не-жадный алгоритм

В настоящее время существуют методы справедливого совместного использования ресурсов, на основе системы распределения. Наиболее известным является метод деления торта «Ты отрезаешь, я выбираю». Есть также алгоритмы, которые позволяют разделить торт…

Алгоритм поиска элемента в отсортированной матрице размером MxN

Под отсортированной матрицей будем понимать такую матрицу, строки и столбцы которой отсортированы. Чтобы найти нужный элемент, можно воспользоваться бинарным поиском по каждой строке. Алгоритм потребует O(M log(N)) времени, так как необходимо…

Обложка поста

Алгоритм, определяющий, все ли символы в строке встречаются один раз

При выполнении этого задания нельзя использовать дополнительные структуры данных. Один из очевидных вариантов решения состоит в том, чтобы сравнить каждый символ строки с любым другим символом строки. Это потребует О(n²)…

Обложка поста

STL: стандартная библиотека шаблонов С++

Механизм шаблонов встроен в компилятор C++, чтобы дать возможность программистам делать свой код короче за счет обобщенного программирования. Естественно, существуют и стандартные библиотеки, реализующие этот механизм. STL является самой эффективной…