我在CodeSignal上参加了一次测试,但没能解决这个问题。
创建一个数据结构并实现以下操作。
插入 x y - 插入一个具有关键字x和值y的对象。
get x - 返回具有关键字x的对象的值。
addToKey x - 将x添加到map中的所有关键字中。
addToValue y - 将y添加到map中的所有值中。
每个操作的时间复杂度应为O(log(N))。
我能够在Java中使用数组和LinkedList创建哈希映射,但我没有办法使时间复杂度达到O(log(N))。
在我的实现中,插入和获取的时间复杂度为O(1)(最坏情况下为O(N))。而addToKey和addToValue的时间复杂度为O(N),因为我必须遍历所有元素来修改键和值。
那么这个问题需要使用什么适当的数据结构呢?