2014-02-11 3 views
0

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

Вопрос: Теперь у вас есть матрица с 0 или 1 (или полезный профиль пользователя представляет собой «1», а не полезный - «0» // или изображение с 1 и 0 значением). Теперь вам нужно эффективно сохранить изображение в системе. Какой метод вы должны использовать?

На мой взгляд, они ожидали, что я придумаю эффективное решение, поэтому я сказал им, используя 0, 1 и «значение» вместе. Например, . 00000011100011111 Может быть сохранен как 06 13 03 15 Я знаю, что есть метод кодирования, подобный этому в мультимедиа или информационных технологиях. Но я не думаю, что это то, чего они хотят.

И идея?

Спасибо.!

ответ

0

Это зависит от того, что означает «эффективный».

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

Если вы хотите сохранить 10 различных двоичных значений для каждого элемента/лица, используйте short (или это то, что 16-битный тип данных вызывается в java).

Если вы храните их в массиве (short[]), вы можете очень быстро найти пункт/лицо по его идентификатору, который используется в качестве позиции в массиве, а затем определенное значение с помощью bitwise operations (в данном случае Bitshift 1 в положение, в котором хранится интересный элемент, а затем используйте побитовую операцию & (и), чтобы получить этот бит. Если полученный короткий != 0 вы знаете, что бит был установлен.

Смежные вопросы