Чета там вопросы для 1-го класса. Мне бы для сеньор девелоперов какие. С упором на соображалку хоть чуток. У меня соображалки нет, придумать сам не могу. :)
Чего-то туго с этим...i_easy_riderNovember 1 2008, 16:35:12 UTC
Ну не то чтобы хороший вопрос (не кидайте в меня помидорами), но лучше чем ничего:
1) Как отсортировать список неопределённой длинны (длинна может быть очень большой)? Уникальных значений в списке всего 256 (или любое другое число). Соответственно значения могут повторятся, но всего 256 различных значений.
3) Есть массив, который хранит ссылки на объекты. При добавлении объекта он записывается в конец массива, индекс увеличивается на 1. Что нужно сделать при удалении объекта из массива?
Ответ: 1. Сдвинуть элементы находящиеся справа от удалённого на 1 позицию влево. о1 о2 о3 (х4) о5 о6 . . . o1 o2 o3 o5 o6 o6
( ... )
Re: Чего-то туго с этим...alishkaNovember 7 2008, 14:28:23 UTC
Про список интересно, но ответ я пока не придумал сам. :) Для телефонного интервью возможно сложновато. А вот второй вопрос хороший. Я этот паттерн люблю, хотя мне его не всегда дают вставлять, говорят не отвлекайся на фигню. :) И ещё я люблю вопросы про использование паттернов неявное.
Re: Чего-то туго с этим...i_easy_riderNovember 9 2008, 23:09:10 UTC
Есть элегантное решение для задачи сортировки списка:
Создаём таблицу (Map) ключ-значение, в неё мы будем записывать количество элементов имеющих данное значение.
Значение элемента - это key таблицы, количество элементов имеющих данное значение - это value таблицы.
Поскольку всего различных значений 256, то Map будет содержать 256 записей.
Алгоритм такой: 1. Обходим весь список и считаем количество элементов для каждого из значений 2. Теперь мы можем вывести содержимое списка, нужно лишь заданное количество раз повторить отсортированные значения.
Comments 6
(The comment has been removed)
Reply
1) Как отсортировать список неопределённой длинны (длинна может быть очень большой)?
Уникальных значений в списке всего 256 (или любое другое число).
Соответственно значения могут повторятся, но всего 256 различных значений.
2) Как исключить возможность NPE?
Ответ: использовать шаблон - NullObject. Т.е. инициализировать ссылку Null-объектом.
(http://en.wikipedia.org/wiki/Null_Object_pattern)
3) Есть массив, который хранит ссылки на объекты.
При добавлении объекта он записывается в конец массива, индекс увеличивается на 1.
Что нужно сделать при удалении объекта из массива?
Ответ:
1. Сдвинуть элементы находящиеся справа от удалённого на 1 позицию влево.
о1 о2 о3 (х4) о5 о6 . . .
o1 o2 o3 o5 o6 o6 ( ... )
Reply
Reply
Создаём таблицу (Map) ключ-значение, в неё мы будем записывать
количество элементов имеющих данное значение.
Значение элемента - это key таблицы,
количество элементов имеющих данное значение - это value таблицы.
Поскольку всего различных значений 256, то Map будет содержать 256 записей.
Алгоритм такой:
1. Обходим весь список и считаем количество элементов для каждого из значений
2. Теперь мы можем вывести содержимое списка, нужно лишь заданное количество раз
повторить отсортированные значения.
Reply
Какие из следующих стандартных контейнеров позволяют найти в них элемент (по его значению) за O(ln(n))?
java.util.Vector
java.util.ArrayList
java.util.LinkedList
java.util.TreeSet
java.util.HashSet
сортированный java.util.Vector
сортированный java.util.ArrayList
сортированный java.util.LinkedList
Это один из вопросов отсюда:
http://company.yandex.ru/inside/job/
Reply
Reply
Leave a comment