猿问

面试题,一个key-value容器的实现问题?

今天在网上看到了一道别人分享的数据结构面试题,要求实现一个key-value容器,支持如下操作:
1.根据key获取元素
2.根据key删除元素
3.插入元素
4.根据value获取key
以上操作时间复杂度均要求在O(log N)以内。
用平衡树可以实现前三条,有没有哪种数据结构可以一并实现第四条的?

Smart猫小萌
浏览 1284回答 3
3回答

qq_花开花谢_0

前三个都很好做,但是第四个问题描述得不够清楚,因为可能多个key对应的都是相同的value,所以根据value去获取key就比较麻烦了,结果可能是一个数组。如果保证一一对应,key和value也都是唯一的,那么像楼上说的简单的两棵平衡树就可以解决

万千封印

一下能想到的是个很二的办法:用两棵树……没特殊约束的话,说不定我真的会这么实现。
随时随地看视频慕课网APP
我要回答