Выпуск#7: ITренировка — актуальные вопросы и задачи от ведущих компаний

Мы подготовили новый выпуск ITренировки с вопросами и задачами от ведущих IT-компаний.

КДПВ

В подборку попали вопросы, встречающиеся на собеседованиях в Adobe (да, вопрос про цвет включён в подборку :). Задачи различного уровня сложности, но все решаемые. Особенно, если Вы уже ответили на вопросы из прошлых выпусков.

Надеемся, что приведённые задачи помогут Вам качественно подготовиться к предстоящим собеседованиями.

Вопросы


  1. 8 marbles
    Let«s say you have 8 marbles and a two-pan balance.
    All of the marbles look the same. Each marble weighs 2.0 grams except for one, which is slightly heavier at 2.05 grams.
    How would you find the heaviest marble if you are only allowed to weigh the marbles 2 times using the balance scale?

    Перевод
    Предположим, у вас 8 стеклянных шариков и чашечные весы. Все шарики выглядят одинаково. Каждый весит 2 грамма, за исключением одного, который чуть тяжелее — 2.05 грамма.
    Как найти самый тяжёлый шарик, если разрешено провести всего 2 взвешивания?

  2. Falling bear
    A bear fell from a height of 10m on the ground in √2 seconds. But somehow, it didn«t get hurt. What is the colour of bear?

    Перевод
    Медведь, падая с высоты 10 м, достигает земли за √2 seconds и, почему-то, остаётся без повреждений. Какого цвета медведь?

    Прим: Я некоторое время подумал, и всё-таки заглянул в ответ. Вопрос немного с подвохом, но ответить можно. Решил привести здесь, если такое на собеседованиях встречается.


Задачи


  1. Product of max and min in 2 arrays
    Given two arrays of integers, the task is to calculate the product of max element of first array and min element of second array.

    Ex:
    Input: arr1[] = {5, 7, 9, 3, 6, 2},
    arr2[] = {1, 2, 6, -1, 0, 9}
    Output: max element in first array
    is 9 and min element in second array
    is -1. The product of these two is -9.

    Input: arr1[] = {1, 4, 2, 3, 10, 2},
    arr2[] = {4, 2, 6, 5, 2, 9}
    Output: 20.


    Перевод
    Даны 2 массива целых чисел. Задача — вычислить произведение максимального элемента из первого массива и минимального из второго массива.

    Примеры:
    Даны: arr1[] = {5, 7, 9, 3, 6, 2}, arr2[] = {1, 2, 6, -1, 0, 9}
    Ответ: максимальный элемент первого массива — 9, минимальный элемент второго -1. Произведение -9.

    Даны: arr1[] = {1, 4, 2, 3, 10, 2},
    arr2[] = {4, 2, 6, 5, 2, 9}
    Ответ: 20.


  2. Maximum Chocolates
    You have $15 with you. You go to a shop and shopkeeper tells you price as $1 per chocolate. He also tells you that you can get a chocolate in return of 3 wrappers. How many maximum chocolates you can eat?

    Write a program to find solution for variable inputs. Given following three values, the task is to find the total number of maximum chocolates you can eat.

    money: Money you have to buy chocolates
    price: Price of a chocolate
    wrap: Number of wrappers to be returned for getting one extra chocolate.

    It may be assumed that all given values are positive integers and greater than 1.


    Перевод
    У Вас есть $15. В магазине у продавца Вы узнаёте цену за шоколадку — $1. Продавец также сообщает, что за 3 обертки выдаст вам ещё шоколадку. На какой максимум шоколадок Вы можете рассчитывать?

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

    money: Имеющиеся деньги
    price: Цена за шоколадку
    wrap: Количество обёрток нужное, чтобы получить ещё одну шоколадку.

    Можно считать, что все входные данные являются целыми и больше 1.


  3. Sort array larger than RAM
    Given 2 machines, each having 64 GB RAM, containing all integers (8 byte). You need to sort the entire 128 GB data. You may assume a small amount of additional RAM.

    Перевод
    Имеются 2 компьютера, у каждого по 64 Гб ОЗУ, занятых целыми числами (8 байт). Вам необходимо отсортировать все 128 Гб данных. Можно использовать небольшое количество дополнительной памяти ОЗУ.


Ответы, как обычно, будут даны в течение следующей недели — успейте решить. Удачи!

© Habrahabr.ru