实现数组的撤消和重做
2022-09-02 20:41:51
我在今天的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}
同样,对于删除。
在复杂性和内存方面实现这一目标的最佳方法是什么?
我对面试官的解决方案:
- 创建一个存储最后一个操作的字符串字段,即“添加”/“删除”。
- 以及一个哈希图,它将键存储为数组的索引,将值存储为数组的索引值。
根据面试官的说法,这是一个完全不正确的解决方案。