Когда есть свободная минутка. Java задача.

112

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

 

Дан массив типа byte размерностью 100 на 100 элементов. Реализовать ОПТИМАЛЬНЫЙ метод определения наличия в данном массиве дублирующихся значений.

 

Предлагаю и вам подумать над решением. Smile


Конец
Виктор Суворов, автор многочисленных книг по истории Второй Мировой войны, майор ГРУ, разведчик абсолютно уверен в том, что побеждает в этой жизни только тот, кто победил сам себя. Кто победил свой страх, свою лень, свою неуверенность.

блин чувак это реально напрягает, как насчет чашечки глинтвейна и журнальчика нью ерк таймс?

 

Ну первое, что приходит в голову - это сделать HashMap<Byte, Integer>, где первый элемент - это байт из массива, а второй - счетчик. Если счетчик становится больше 1, то мы нашли дубль.

Следующее - т.к. byte маленький, то можно создать не HashMap, а простой массив от 0 до 255, в котором i (индекс) - это байт, а значение - кол-во повторений. Собственно, практически то же самое, что и вариант 1.

ага, вариант хороший, но жутко неопримальный Smile

max аватар

Массив byte - сколько там значений? -128 - +127, и того 256, а у нас массив 100 на 100 - 10 000 значений, ну ясное дело что будут повторения: оптимальный метод решения: return true; Ну это для случая, если не нужно определить какие именно значения продублированы.

ЗЫ: Автор коммента - Автор поста.

Ахах. Это читерство. Подход настоящего программиста.

return true;

 

Если интересует именно наличие, а не подсчёт дублирующихся элементов.

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке