查看: 4447| 回复: 26
跳转到指定楼层
上一主题 下一主题
收起左侧

[字符串] 关于一道API 设计的题目

🔗
匿名用户-BMEIL  2019-11-8 08:18:21 |倒序浏览

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
让你实现一些API,假定每个单词有一个定义,<word, defination>,然后实现
1.add(word, def), void      
2. remove(word), void
3. update(word, def),  void
4. lookup(word) 返回def
5.printOut() 打印出所有的 <word, def> pair 并且按照word排序。

我用的方法是用两个map, 其中一个是TreeMap, 这样可以保证 update, lookup O(1) 复杂度,       add, remove O(logn) 复杂度, printOut() O(n) 复杂度

后来要求是 add 和 remove 也O(1) 其他的时间复杂度不变。。

不用考虑空间复杂度,可以使用任意的数据结构

有没有大佬知道的

上一篇:G家 generating maze这道高频DFS就够吗
下一篇:【OA】(急)Java HTTP Post Get 的OA请教怎么做
推荐
yeetatbig4 2019-11-9 06:46:43 | 只看该作者
全局:
看得我太乱了。。。大家现在都喜欢扔个词儿就跑的交流方式吗。。。我整理了半天才明白LZ题目是啥,要求是啥。

用 LinkedHashMap 可以做到 add/remove/lookup O(1)要求,
排序的话,quick select 的 average case 和 best case,可以做到 O(n)
但感觉这么考能考啥。。。。考记忆复杂度吗。。。有点二说实话,LZ move on 吧,别太难过了
回复

使用道具 举报

全局:
肥颓 发表于 2019-11-7 18:38
这放py 就是很典型的dictionary 的用法 没有任何trick 的。。。
简直就是dictionary 的定义。。。

跟语言没关系,py只是叫dict,本质上还是hash map

这题如果不是print要O(n),确实就是python上dict,java上hashmap就行了
回复

使用道具 举报

全局:
肥颓 发表于 2019/11/08 08:38:42
这放py 就是很典型的dictionary 的用法 没有任何trick 的。。。
简直就是dictionary 的定义。。。
Printout需要排序的,要on
回复

使用道具 举报

🔗
肥颓 2019-11-8 08:38:42 | 只看该作者
全局:
这放py 就是很典型的dictionary 的用法 没有任何trick 的。。。
简直就是dictionary 的定义。。。
回复

使用道具 举报

🔗
肥颓 2019-11-8 08:39:13 | 只看该作者
全局:
add 应该也是O(1), remove 也是O(1),
回复

使用道具 举报

全局:
不是哈希表吗
回复

使用道具 举报

🔗
肥颓 2019-11-8 10:16:31 | 只看该作者
全局:
按照什么东西排序?
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-BMEIL  2019-11-8 10:19:39
肥颓 发表于 2019-11-8 10:16
按照什么东西排序?

按照字母的顺序比如 aa,ab 是对的,ab,aa是错的
回复

使用道具 举报

🔗
midaliuliu 2019-11-8 10:22:48 | 只看该作者
全局:
匿名者 发表于 2019-11-8 10:19
按照字母的顺序比如 aa,ab 是对的,ab,aa是错的

printout 需要 O(n) 并且还要排序
回复

使用道具 举报

🔗
肥颓 2019-11-8 10:50:10 | 只看该作者
全局:
为啥要匿名啊。。。。。。。。
字典序的话

我就会维护一个堆,然后插入是logn

其他的一样
回复

使用道具 举报

全局:
肥颓 发表于 2019/11/08 10:50:10
为啥要匿名啊。。。。。。。。
字典序的话

我就会维护一个堆,然后插入是logn

其他的一样
选错了,这是一道面试题目,不匿名了。
要求是O(1),logn 之后要我变成constant time
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表