В вопросе не говорится о смоле или зыбучих песках, а только о сиропе. Это классическая задача с долгой историей, которую обсуждал в своё время еще Исаак Ньютон. Когда-то она использовалась и на IT-собеседованиях в Google (сейчас — нет). Тем не менее предлагаем вам порассуждать над решением. Единственное интересное место в этом алгоритме — выделение numberOf2s в отдельный метод.
Если «сжатая» строка оказывается длиннее исходной, метод должен вернуть исходную строку. Даже если вы незнакомы с комбинаторикой, то все равно можете найти решение этой задачи самостоятельно. Повторение этой процедуры три раза генерирует число в диапазоне от 000 до 111. Переведите снова в десятичное исчисление, и тогда человек, у которого выпало большее число, выигрывает (например, one hundred and one означает, что выиграл лотерейный билет № 5). Опишите, как можно использовать один одномерный массив для реализации трех стеков.
Или вы подходите к решению задачи логически? Первое, что нужно иметь ввиду, это то, что нельзя наблюдать за самим диском. Например, вы сидите в офисе, а диск вращается в закрытой лаборатории. Единственная возможность определить направление вращения — использовать оцифрованные показания датчика, и ничего больше. Обратите внимание, что многие вопросы Ферми связаны со сферическими спортивными предметами, заполняющими автобусы, бассейны, самолёты или стадионы.
В противном случае, двигаем правый указатель на один индекс влево. Повторяем до тех пор, пока два указателя не пересекутся. (На словах звучит запутанно, код на самом деле очень простой). На этой картинке изображены стены различной высоты в некотором плоском мире. Картинка представлена массивом целых чисел, где индекс — это точка на оси X, а значение каждого индекса — это высота стены (значение по оси Y).
Вы должны использовать дополнительные классы, как мы сделали со StackData, а блоки кода нужно выделить в отдельные методы. Этот совет пригодится не только для прохождения собеседования, его можно использовать и в реальных задачах. Кроме того, можно создать массив таким образом, чтобы последний стек начинался в конце массива и заканчивался в начале, — «закольцевать» массив. Для этого предыдущие клиенты должны занять № 1 и № 17. А как сделать так, чтобы посетитель отправился на № 17? Скажем так, барная стойка недостаточно длинная, чтобы посадить клиентов на места № 1 и № 33.
Регистр учитывается, пробелы являются существенными. Какое минимальное количество разрезов потребуется сделать, чтобы разделить этот кусок на 27 одинаковых кубиков? После каждого разреза части можно компоновать как угодно. Итерационное решение будет более сложным, но и более оптимальным. Можно использовать два указателя — p1 и p2.
На этом принципе построена модель данных «Бинарное дерево» — это одна из важнейших технологий для составления словарей и поиска данных. Прочитайте об этом в статье про бинарные деревья. На самом деле за 7 шагов можно угадать любое число от zero до 127 или от 1 до 128.
Можно создать массив для K строк и прочитать последние K строк. В нашем массиве там будут храниться строки от 1 до K, затем от 2 до K+1, затем от three до K+2 и т.д. Каждый раз, считывая новую строку, мы будем удалять самую старую строку из массива. Можно использовать mар (из STL) или бинарное дерево.
Такой шаблон можно использовать для произвольного значения N — если на острове находится N человек с голубыми глазами, понадобится N ночей, чтобы все они покинули остров. При поиске в ширину мы устанавливаем флаг visited для посещенных узлов и храним его в классе узла. Поскольку одновременно выполняется множество запросов, данный подход помешает редактировать задачи для программистов данные. Вместо этого можно имитировать маркировку узлов с помощью хэш-таблицы, в которой будет храниться id узла и отметка, посещен он или нет. Хороший способ решить эту задачу — устранить ограничения и сначала разобраться с упрощенной версией. Предложите алгоритм, который обнуляет столбец N и строку M матрицы, если элемент в ячейке (N, M) нулевой.
Под «синхронизацией» здесь понимается, что в полночь и полдень все три стрелки указывают точно на 12. Большинство аналоговых часов всех видов не позволяют вам точно установить секундную стрелку. Поэтому при размере в монетку, высота вашего прыжка (если не учитывать сопротивление воздуха) никак не изменится. Если вы можете сейчас перепрыгнуть через препятствие такой высоты, то удрать из блендера для вас не будет проблемой. Мы используем это приближение 6 раз, и поэтому ответ должен быть чуть более, чем на 12% больше. Если ориентироваться на этот предельный случай, то легко понять в чём трудность.
Впрочем, на собеседовании вас не заставят писать столь сложный код, поэтому мы ограничимся упрощенной версией (псевдокодом). Бармен с таким же успехом мог бы попросить первого посетителя сесть на место № 9, и в этом случае диаграмма стала бы зеркальным отображением той, которая представлена выше. При резких порывах ветра преимущества медленного движения сходят на нет.
Количество экземпляров b, необходимых, чтобы получить a, и будет искомой величиной x. Самая сложная из математических операций — деление. Хорошая идея — использовать для реализации метода divide методы multiply, subtract и negate. Отрицательное значение k получается суммированием k раз числа -1. Это важно, потому что, как пловцы уже давно знают, в более плотной соленой воде люди плавают быстрее.
Когда вы перемещаетесь с нормальной скоростью, вы обречены встретиться с теми же самыми каплями или, точнее, с их последователями. При нормальной скорости свою долю капель получит и ваша голова. Число дождевых капель, с которыми вы встретитесь, зависит от длины вашего горизонтального пути, а также от того времени, которое вам потребуется для его преодоления. Длина пути в этой задаче — заданное условие.
Или конструкция такова, что вас всё таки заденет остриём? И вообще, если вдуматься, кто и зачем вас бросил в блендер? Если это какие-то враждебные существа, которые собираются приготовить соус из человека, то ваши долгосрочные шансы на выживание будут очень небольшими при любом варианте. Залезть по лезвию на ось вращения и найти такое место, где при вращении лезвий можно сохранять равновесие. Итоговая центростремительная сила в этом случае будет близка к нулю, что и позволит удержаться. Это классическая google-задачка, хороший разбор которой в рунете не так-то просто найти.
Ключевое слово unstable информирует компилятор, что значение переменной может меняться извне. Это может произойти под управлением операционной системы, аппаратных средств или другого потока. Поскольку значение может измениться, компилятор каждый раз загружает его из памяти. Вместо этого, можно разместить 2 датчика рядом, например первый датчик в произвольном месте, а второй в 10 градусах по часовой стрелке от первого. Большую часть времени оба датчика будут давать одинаковые показания, однако, при смене цветов, один датчик заметит изменение раньше, чем другой.
Поэтому за каждый 12-часовой цикл наложения происходят в периоды, указанные на картинке. Посколько этот вопрос сейчас стал широко известен, интервьюверы начали использовать его разновидность. Очевидно, что в числе, следующем за sixty six, должно быть девять букв (не считая возможного дефиса), и оно должно быть самым крупным в своём роде. Немного подумав, можно сказать, что ответ будет ninety six (ninety-six).
Функция list() преобразует результат обратно в список, который мы и возвращаем. Одна из любимых логических задач сотрудников Google, которую дают на собеседовании. На следующей неделе у нас с ним выйдет интервью, стей тюнед. Предполагаем, что описанный сценарий невозможен и у всех соседних смайликов разные цвета — должно получиться семь или восемь пар. Делим пятнадцать на два и получаем семь с половиной — нечётное число, противоречащее нашему утверждению. Значит, хотя бы у одной пары будет одинаковый цвет.
Более скользкая твердая пластиковая поверхность способствует реализации варианта скольжения. Те, кто изучал физику или проводил много времени в детских играх, вспомнят, что когда предмет начинает скользить, сила трения становится меньше, чем когда он стоит. На верхней части ледяной горки вы немного «прилипаете», но затем неожиданно начинаете свободно по ней двигаться вниз.
Вы можете получить дополнительные баллы, если упомяните гипотезу Кеплера. Хэрриот рассказал об этой задаче своему другу астроному Иоганну Кеплеру. Кеплер предположил, что самый плотный способ упаковки сфер уже и так применяется — при укладке пушечных ядер и фруктов. Первый слой кладётся просто рядом друг с другом в виде шестиугольной формы, второй в углублениях на стыках шаров нижнего слоя я и т.д.
Шарик лежит на дне трубы, то есть на расстоянии трех метров от плоскости земли. Другого у игроков нет, выкопать трубу нельзя. Выпишите в столбик все числа текстом на английском языке. Вы заметите, что каждое следующее длиннее предыдущего на одну букву. Вообще, трудоустройство в нашей стране сродни лотерее. Не редки случаи попадания на, мягко говоря, неадекватного интервьювера и потом лечить мозг неделю после него.
Вместо этого Касслер использовал пищевой загуститель, применяемый для производства мороженого, шампуней и заправок для салата. Около 300 кг этого вещества вылили в плавательный бассейн. «Сказать по правде, смесь эта походила на сопли», — заметил Касслер. И все же это были не сопли, а размазня примерно вдвое плотнее воды. Другими словами, чтобы рассчитать количество двоек в d-м разряде, достаточно округлить значение до 10d+1, а затем разделить на 10. Мы знаем, что в последовательном ряду из десяти чисел последний разряд принимает значение 2 только один раз.