真实工作面试问题,由一些“顶级”工程师提出。说实话,我认为这是关于找到数据结构的“圣杯”的问题。但是我试图了解如何对这种“问题”做出回应。
要求: 我们有 服务接口中的Get(id),Put(id,model),Delete(id),Add(id,model)操作。
有服务S令人满意的接口。它将数据存储在某些容器/集合中。
如何使这些操作以效率O(1)执行?
与此同时,此容器/集合应使用最少的内存。 假设我们在这里谈论c#或Javascript / typescript。
答案 0 :(得分:0)
不太确定#2,但是对于#1,Javascript对象实际上是一个哈希表,因此查找在O(1)时间内运行。您可以简单地使用一个对象,其键代表主键,这些主键标识我们数据存储区中的条目。每个键的值就是条目本身。
答案 1 :(得分:0)
要求:服务接口中具有Get(id),Put(id,model),Delete(id),Add(id,model)操作。
TypeScript Map<Key,Value>
中的O(1):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map