javascript - CRUD 表现 - 工作面试问题
问题描述
真正的工作面试问题,由一些“顶级”工程师提出。说真的,我认为这是关于寻找数据结构的“圣杯”的问题。但我试图了解如何回应此类“问题”。
问:我们在服务接口中有Get(id)、Put(id, model)、Delete(id)、Add(id, model)操作。
有服务S满足接口。它将数据存储在某个容器/集合中。
使这些操作以 O(1) 的效率执行的方法是什么?
同时这个容器/集合应该使用最少的内存。假设我们在这里谈论 c# 或 Javascript/typescript。
解决方案
不太确定 #2,但对于 #1,Javascript 对象实际上是一个哈希图,因此查找运行时间为 O(1)。您可以简单地使用一个对象,其键代表我们数据存储中标识条目的主键。每个键的值就是条目本身。
推荐阅读
- sympy - 通过 sympy solve() 找到方程的一个解
- java - 如何动态地增加布局并知道用户点击了女巫?
- python - 在 RStudio 中配置 python,virtualenvs 不起作用
- java - Java BufferedReader readLine() 在 read() 后突然不起作用
- c++ - 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- python - 如何从字典中获取值
- oracle - 如何使用 TYPE RECORD 调用过程?
- c++ - 为什么 c++ 不允许(自动)强制转换?
- excel - 如何将可见的自动筛选行插入另一个工作表(不包括标题)
- c# - Windows 窗体在 ComboBox 中显示错误的值