Задача о самолете на ленте транспортера: взлетит или не взлетит?

Одна из самых известных задач Интернета, будоражащая многие светлые умы человечества. Ее формулировка такова: самолет стоит на взлетной полосе с подвижным покрытием типа транспортера. Покрытие может двигаться против направления взлета…

Обложка: Задача о самолете на ленте транспортера: взлетит или не взлетит?

Находим N’е число Фибоначчи тремя способами за приемлемое время: основы динамического программирования

Задача: посчитать N-е число последовательности, в которой каждый элемент равен сумме двух предыдущих. Такая последовательность называется последовательностью Фибоначчи: 1, 1, 2, 3, 5, 8……

Обложка: Находим N’е число Фибоначчи тремя способами за приемлемое время: основы динамического программирования
Обложка: Задачка: пересекутся ли две заданные прямые, лежащие в одной плоскости?

Задачка: пересекутся ли две заданные прямые, лежащие в одной плоскости?

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

Обложка: Подсчитайте, сколько денег понадобится на мытье всех окон в Сиэтле

Подсчитайте, сколько денег понадобится на мытье всех окон в Сиэтле

Развитие умения измерять неизвестное и мыслить абстракциями может здорово помочь программисту. На собеседованиях в крупные компании вас очень часто могут попытаться подловить на неумении оперировать большим количеством неизвестных данных, поэтому лучше…

Обложка: Как сделать «двойной break», то есть выйти из вложенного цикла, в Python?

Как сделать «двойной break», то есть выйти из вложенного цикла, в Python?

Условие: Перебрать все пары символов в строке, и остановиться при нахождении двух одинаковых символов.

Обложка: Как одной математической формулой по номеру месяца посчитать количество дней в нем?

Как одной математической формулой по номеру месяца посчитать количество дней в нем?

Рассказывает Куртис МакЭнроэ  Недавно после длительного времени, проведенного без сна, я задумался над тем, как можно узнать количество дней в месяце, зная его номер. Существуют детские стишки на эту тему…

Обложка: Задача на поиск «волшебного» индекса в массиве

Задача на поиск «волшебного» индекса в массиве

В массиве случайных чисел A[0…n-1] задан один «волшебный» индекс: такой, что A[i] = i. Значения элементов в массиве повторяться не могут. Учитывая, что массив отсортирован по значениям в порядке возрастания, напишите метод, который определит этот…

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

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

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

Напишите программу, проверяющую число на четность, используя только битовые операции

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

Обложка: Напишите программу, проверяющую число на четность, используя только битовые операции

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

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

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

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

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

Задача про комнату с лампочками

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

Обложка: Задача про комнату с лампочками
Обложка: Задача про бесконечный поезд

Задача про бесконечный поезд

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

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

Эту задачу задавали на собеседовании в Twitter.

Обложка: Задача про воду, накапливающуюся между стенами
Обложка: Вам нужно подняться по лестнице. За один раз можно подняться на одну или две ступеньки. Сколько существует способов добраться до N-й ступеньки?

Вам нужно подняться по лестнице. За один раз можно подняться на одну или две ступеньки. Сколько существует способов добраться до N-й ступеньки?

Начало здесь простое. Вы стоите на лестничном марше и хотите подняться на первую ступеньку — № 1. Для этого надо сделать всего одно действие — подняться на одну ступеньку вверх. Теперь давайте…

Обложка: Задача про кассира-программиста

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

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

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

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

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

Обложка: Задача про акции Apple

Задача про акции Apple

Задача, которую давали на собеседованиях в Apple. От вас требуется написать функцию, которая возвращает максимальную прибыль от одной сделки с одной акцией (сначала покупка, потом продажа). Исходные данные — массив вчерашних котировок stock_prices_yesterday с ценами…

Обложка: Что могут спросить на собеседовании: подборка задач Ферми

Что могут спросить на собеседовании: подборка задач Ферми

Для решения некоторых задач требуются вычисления высочайшей точности. Однако множество других задач допускает приближенное решение. Физики гордятся тем, что могут быстро ответить на вопросы, требующие ответа «с точностью до порядка»…

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

Представьте страну, где все родители хотят иметь мальчика. Каждая семья продолжает рожать детей до тех пор, пока у них не появляется мальчик, а затем останавливается. Каково соотношение мальчиков и девочек…

Обложка: Задачка про страну с мальчиками и девочками

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

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

Обложка: Задача о максимальном произведении трех чисел массива
Обложка: Разработайте план эвакуации жителей Сан-Франциско

Разработайте план эвакуации жителей Сан-Франциско

Такой вопрос на самом деле не лишен практического смысла. В 2006 году в Карте отчета об эвакуации в чрезвычайной ситуации, составленной Союзом пользователей американских автодорог, Канзасу была присвоена степень А…

Обложка: Задача на поиск пути в реальной жизни

Задача на поиск пути в реальной жизни

Допустим, у вас есть такая задача: вам необходимо добраться из точки А в точку В, и вы не знаете, как туда можно попасть. Что вы сделаете в этом случае? Ответ…

Задача о преобразовании массива с целыми числами

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

Обложка: Задача на составление прямоугольника из слов одинаковой длины

Задача на составление прямоугольника из слов одинаковой длины

Условие задачи звучит так: дан список из миллиона слов. Разработайте алгоритм, создающий максимально возможный прямоугольник из букв так, чтобы каждая строка и каждый столбец образовывали слово (при чтении слева направо…

Обложка: Разработайте алгоритм, позволяющий найти k-e число из упорядоченного числового ряда, в разложении элементов которого на простые множители присутствуют только 3, 5 и 7

Разработайте алгоритм, позволяющий найти k-e число из упорядоченного числового ряда, в разложении элементов которого на простые множители присутствуют только 3, 5 и 7

По условию задачи любое число этого ряда должно представлять собой произведение 3a · 5b · 7c. Давайте посмотрим на список чисел, удовлетворяющих нашим требованиям:…

Обложка: Задача на поиск субматрицы с наибольшей суммой элементов

Задача на поиск субматрицы с наибольшей суммой элементов

Полное условие задачи звучит так: дана матрица размером N*N, содержащая положительные и отрицательные числа. Напишите код поиска субматрицы с максимально возможной суммой. Существует множество решений этой задачи. Мы начнем с…

Обложка: Как сгенерировать неповторяющиеся комбинации, меняя только один элемент за раз

Как сгенерировать неповторяющиеся комбинации, меняя только один элемент за раз

Полное условие задачи звучит так: «У вас есть пустое помещение и группа людей снаружи. За один ход вы можете либо позволить одному человеку войти в помещение, либо выпустить из него…

Обложка: Перед вами три коробки, в какой из них находится приз?

Перед вами три коробки, в какой из них находится приз?

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

Умный указатель на C++

Умный (интеллектуальный) указатель — это тот же обычный указатель, обеспечивающий безопасность благодаря автоматическому управлению памятью. Такой указатель помогает избежать множества проблем: «висячие» указатели, «утечки» памяти и отказы в выделении памяти.

Обложка: Умный указатель на C++
Обложка: Объясните разницу между шаблонами в C++ и дженериками в Java

Объясните разницу между шаблонами в C++ и дженериками в Java

Многие программисты полагают, что шаблоны C++ и дженерики (например в Java) — это одно и то же, ведь их синтаксис похож: в обоих случаях можно написать что-то вроде List<T>. Чтобы…

ППП, ППК, ПКК, ПП и другие

Популярная задача с собеседований Amazon. Мы русифицировали её, но смысл остался тот же. Вам нужно продолжить последовательность.

Обложка: ППП, ППК, ПКК, ПП и другие