Я получил этот вопрос в интервью JAVA сегодня.
Мне нужно реализовать коллекцию, которая является массивом и имеет методы add
и delete
, которые могут выполняться только в конце массива.
В дополнение к этому я должен реализовать еще два метода, которые являются undo
и redo
, которые могут выполняться только один раз.
Например:
Разрешает x массив, содержащий {1,5,7,9}.
Теперь я добавляю {44,66,77}
в него и делает его {1,5,7,9,44,66,77}.
Теперь, когда я отменю его, массив должен удалить {44,66,77}.
. И если я сделаю повтор после этого, он должен вернуться к {1,5,7,9,44,66,77}
.
И аналогично для удаления.
Каков наилучший способ достичь этого с точки зрения сложности и памяти?
Мое решение для интервьюера:
- Создайте одно поле String, которое сохранит последнюю операцию, то есть "Добавить" / "Удалить".
- И Hashmap, который хранит ключ как индекс массива и значение как значение индекса массива.
что является абсолютно неправильным решением в отношении интервьюера.
Спасибо заранее.