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







блин чувак это реально напрягает, как насчет чашечки глинтвейна и журнальчика нью ерк таймс?
Ну первое, что приходит в голову - это сделать HashMap<Byte, Integer>, где первый элемент - это байт из массива, а второй - счетчик. Если счетчик становится больше 1, то мы нашли дубль.
Следующее - т.к. byte маленький, то можно создать не HashMap, а простой массив от 0 до 255, в котором i (индекс) - это байт, а значение - кол-во повторений. Собственно, практически то же самое, что и вариант 1.
ага, вариант хороший, но жутко неопримальный
Массив byte - сколько там значений? -128 - +127, и того 256, а у нас массив 100 на 100 - 10 000 значений, ну ясное дело что будут повторения: оптимальный метод решения: return true; Ну это для случая, если не нужно определить какие именно значения продублированы.
ЗЫ: Автор коммента - Автор поста.
Ахах. Это читерство. Подход настоящего программиста.
return true;
Если интересует именно наличие, а не подсчёт дублирующихся элементов.
Отправить комментарий