Собеседование решение задачи про ресторан
Транспортер автоматически регулирует свою скорость таким образом, чтобы самолет оставался неподвижным. Вопрос: сможет ли самолет в таких условиях взлететь?Здесь нужно отметить, что при ближайшем рассмотрении условие задачи оказывается некорректным. Во-первых, шасси вращаются с угловой скоростью, а лента с линейной, поэтому их сравнение некорректно. Во-вторых, если принять, что угловая скорость колес транспортера равна угловой скорости колес самолета и их диаметры равны, то задача сводится к неподвижному относительно земли самолету. Но будем исходить из того, что транспортер просто движется так, чтобы не дать едущему по транспортеру самолету перемещаться относительно земли.
Единственное место, где можно здесь найти горючее – это топливные баки грузовиков. Пересесть из грузовика в гибридный легковой автомобиль Prius нельзя.
Бросить грузовик без топлива, где бы это ни случилось, и без водителя – в порядке вещей. И единственное, что здесь важно, – доставить как можно дальше ценный груз.
Ответ
Опишите алгоритм для нахождения миллиона наименьших чисел в наборе из миллиарда чисел.
Есть ли более эффективное решение?
Ответ
Напишите метод, который будет подсчитывать количество цифр «2», используемых в десятичной записи целых чисел от 0 до n (включительно).
Собеседование решение задачи про ресторан
Ограничения: мы можем использовать O(1) дополнительной памяти и не можем создавать новый итератор. Можно пользоваться функцией генерации случайного числа от [0;1).
Ответ
Известная задача с IT-собеседований с несколькими вариантами решения: как правильно реализовать обмен значений переменных?
a = b; b = a;
Если вы попытаетесь выполнить обмен значений этим способом, то увидите, что теперь в обеих переменных хранится значение переменной b.
Происходит это ввиду построчного выполнения кода. Первая операция присваивания сохраняет значение переменной b в переменную a. Затем вторая — новое значение a в b, иными словами значение b в b.
Собеседование решение задачи про рестораны
Интересный вариант решения нашел на одном из форумов. У нас есть два состояния горит-не горит и два состояния выключателя вкл-выкл, при этом лампочек три.
Т.е. предложение добавить еще одно состояние исправна-не исправна. Т.е. лампочка теперь может быть в трех состояниях горит/ не горит и исправна/ не горит и неисправна.
Собеседование решение задачи про ресторан и 30 рублей
В календаре есть функция, показывающая, когда различные команды программистов будут заняты на какой-либо встрече.
Те периоды, когда команда занята, на календаре отмечены как диапазоны времени, например, с 10:00 до 12:30 или с 12:30 до 13:00. В разрабатываемой программе промежуток времени представлен в виде кортежей из двух целых чисел.
Число означает номер 30-минутного блока, который идет после 9:00 утра. Например, кортеж (2, 4) означает диапазон с 10:00 до 11:00, а (0, 1) — это промежуток 9:00-9:30.
Вам нужно написать функцию, которая должна упростить вывод информации таким образом, что если команда занята в промежутках с 10:00 до 12:30 и с 12:30 до 13:00, то это отображалось как 10:00‒13:00.
Объясните разницу между шаблонами в C++ и дженериками в Java.
Многие программисты полагают, что шаблоны C++ и дженерики (например в Java) — это одно и то же, ведь их синтаксис похож: в обоих случаях можно написать что-то вроде List<T. Но различия на самом деле есть.
Ответ
Реализуйте вручную «умный» указатель с автоматическим управлением памятью на C++.
Умный (интеллектуальный) указатель — это тот же обычный указатель, обеспечивающий безопасность благодаря автоматическому управлению памятью. Такой указатель помогает избежать множества проблем: «висячие» указатели, «утечки» памяти и отказы в выделении памяти.
Теперь применяем к ней тот же метод, что и для первой – поджигаем с двух сторон и получаем пятнадцать минут горения.
Задача третья: комната с лампочками
Есть закрытая комната, где находятся три лампочки. Снаружи есть три выключателя. Необходимо узнать какую лампочку включает каждый выключатель, но при этом можно зайти в комнату только один раз.
(
Нельзя бегать и щелкать выключателями).
Конечно, как менеджер, можно привлечь помощников, но нужно использовать иной взгляд на лампочки и обойтись самому. Начинаем размышлять. Комната закрытая, лампочки снаружи не видны.
Если включить одну из них, а остальные выключить, а потом пойти посмотреть, мы узнаем какой выключатель управляет горящей лампочкой. По условиям, мы должны сразу же как-то различить и остальные две. Если они не горят, то они совершенно одинаковые.
Это время никак не соотносится с длиной. Но у нас две веревки, поэтому мы можем как-то время горения одной веревки соотнести с временем горения другой. А теперь ключ к решению задачи. Ведь если веревка горит 1 час, значит ее подожгли с одного конца, следовательно, если ее поджечь с двух концов, то она точно сгорит за 30 минут, конечно будет гореть неравномерно, но время будет точным.
Все, у нас есть с чем сравнивать. Поджигаем первую веревку с двух сторон, а вторую только с одной(чтобы засеч время). Первая спокойно горит тридцать минут, и когда она сгорела мы тушим вторую веревку. Получается, что у нас остался кусок веревки, который должен сгореть за пол-часа (какая длина-не важно).
Как вы отреагируете, если посетитель, написавший в интернете несправедливый гневный отзыв о вашей работе, снова появится у вас в заведении?
Сотрудники, имеющие некоторый опыт в ресторанном деле, знают, что в большинстве конфликтных ситуаций стоит придавить свое эго и любым доступным способом задобрить разгневанного посетителя и чем быстрее, тем лучше. Это, конечно же, зависит и от концепции заведения, и от самой ситуации. В некоторых случаях имеет смысл защищать свою точку зрения и пытаться донести гостю, как сильно он навредил заведению своим отзывом, но чаще всего — какие-либо попытки отстоять себя только усугубят ситуацию.
Вы можете быть уверенны, что перед вами перспективный сотрудник, если его ответ сфокусирован на том, что произошло с точки зрения посетителя, и какие выводы нужно сделать, чтобы не допустить подобного негатива в будущем.
6.
Периодически интервьюеры задают различные задачи, слабо относящиеся к вашей будущей работе. Особенно этим грешат в больших компаниях. Именно там, где каждый большой или маленький начальник думает не о том, что нужно будет делать работнику, а о том, как бы проверить одно из его логических качеств, которые, возможно никогда и не пригодятся в работе.
Хотя многие говорят, что интересует не решение этих задач, которые дают на собеседовании, а то, как их решает соискатель. На собеседовании могут задать несколько типов задач, чтобы посмотреть креативность, широту взглядов и “незашоренность” Часто такие задачи не имеют единственно правильного решения и интерьвьюеру интересен путь по которому кандидат идет, например, “Посчитайте сколько заправок в стране “. Но есть и задачи, которые имеют решение. Это как раз на логику.