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

[Leetcode] Python里面用什么数据结构代替TreeMap / OrderedMap

全局:

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

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

x
本帖最后由 生蚝来十个 于 2021-5-21 08:19 编辑

在做最近周赛的一个题目的时候想到这个问题:
  • 当题目需要用到sorted map / list,比如带有Ordered Map标签的题目,python玩家应该用什么代替?(增删操作都是O(logn)时间,并且不会退化到O(n))

Build-in package:Python本身built-in package里面没有类似Java的TreeMap,也没有红黑树或者balanced BST。如果自己写一个简单的BST,在worst case时候又不够快。而且在面试时候,也没有必要当场写一个AVL Tree出来吧。

Python Sorted Containers:看Leetcode讨论区很多人在用Python Sorted Containers 这个package 里面的SortedList / SortedDict。刷题的时候的确是很好用,但是如果面试的时候直接这么用的话,好像题目一下子又变得太简单了,毕竟题目本身就是要我实现这个功能,直接import是不是不符合要求?

Segment Tree: 这类的题目有些是可以用Segment Tree或者Binary Indexed Tree搞定的,但是好像不是一个比较模板的方法。(可能我理解没到位)

大家都是怎么解决的?





上一篇:谈谈常见bug和良好的编程习惯
下一篇:505. The Maze II 复杂度
推荐
leyixian 2021-9-25 11:18:57 | 只看该作者
全局:
acp_ 发表于 2021-5-21 00:28
sortedcontainers 了解一下

很多online平台都不支持第三发库,比如hackerrank,很多公司用来面试笔试。

Leetcode是支持的,刷题很好用,平时工作也没问题,面试不行。

目前没发现有好的解决方法,要么就用性能差的数据结构(可能过不了worst cases),要么只能换语言。。。

如果有哪位大佬知道解决办法,愿闻其详。
回复

使用道具 举报

推荐
 楼主| 生蚝来十个 2021-5-21 07:35:37 | 只看该作者
全局:
本帖最后由 生蚝来十个 于 2021-5-21 07:37 编辑

OrderedDcit是maintain元素加入时候的顺序,而不是大小顺序
回复

使用道具 举报

🔗
望舒 2021-5-21 07:32:24 来自APP | 只看该作者
全局:
OrderedDict?
回复

使用道具 举报

🔗
彼岸幽光 2021-5-21 07:49:39 | 只看该作者
全局:
同好奇一下
回复

使用道具 举报

🔗
acp_ 2021-5-21 08:28:29 | 只看该作者
全局:
sortedcontainers 了解一下
回复

使用道具 举报

🔗
txdsteven 2021-11-18 04:11:39 | 只看该作者
本楼:
全局:
同问
回复

使用道具 举报

🔗
 楼主| 生蚝来十个 2021-11-18 06:15:16 | 只看该作者
全局:
本帖最后由 生蚝来十个 于 2021-11-17 14:16 编辑
leyixian 发表于 2021-9-24 19:18
很多online平台都不支持第三发库,比如hackerrank,很多公司用来面试笔试。

Leetcode是支持的,刷题很 ...

我目前的理解是:其实SoretedList也是可以用Segment Tree实现的。Leetcode上面的题目,如果有OrderedMap标签的,讨论区一般也都有Segment Tree / Binary Indexed Tree 的解法。对于不太复杂的题目,往往Binary Search Tree也足够通过了。
回复

使用道具 举报

🔗
xcmax123 2021-11-19 06:07:54 | 只看该作者
全局:
幼稚了。写java的人都可以调用treemap, 写python的人用sortedcontainer有啥错?不都是调用api吗?
回复

使用道具 举报

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

本版积分规则

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