123
返回列表 发新帖
楼主: yangyuzhiguang
跳转到指定楼层
上一主题 下一主题
收起左侧

[高频题] 想讨论一道谷歌高频题

🔗
sciencebeer 2020-2-22 03:53:30 | 只看该作者
全局:
有个思路。实际生产中不需要特别精确的值。如果数据满足某种概率分布,可以估算一个上下边界。计算输出平均值的时候直接抛弃边界外的值。
回复

使用道具 举报

🔗
djmiss 2020-2-26 02:52:44 | 只看该作者
全局:
WIwindson 发表于 2020-2-21 14:20
你不需要从树或者最大最小堆中删除旧的无效的元素吗?

比如前100个数都是10,然后来200个1,那么之前在5%里的10就会回到中间部分了吧。如果再后面有很多的100,10又有会再度进入5%范围了。如果把10抛弃了,结果是不是就不对了?

求大佬解惑。
回复

使用道具 举报

🔗
kenyang 2020-2-27 02:10:03 | 只看该作者
全局:
joe297 发表于 2020-2-7 07:09
开一个BST,维护一个mean,total number of integers,number of integers in BST
每有一个新integer,进 ...

看了半天,就你这个方法最简洁!有效!
而且用标准库的结构(Set, Treeset)就能搞定,不需要modify红黑树记录子树节点个数与和。

原本我想的方法是开一个BST,维护5%、95% quantile的Iterator
看了你的答案才意识到上下5%的信息我们并不需要了
Brilliant!


放进disk。。会考这么难吗?
回复

使用道具 举报

🔗
风梦七 2020-3-14 08:52:26 | 只看该作者
全局:
intelliu 发表于 2020-1-22 02:54
有人想过只存最大的5%和最小的5%吗, 这样可以省下很多空间, 然后用总数减去这部分的和再除以元素个数就能 ...

某一阶段5%对应50个元素,堆的大小是50,如果后来堆的大小变大了,应该让哪个元素进去呢? (如果不存中间部分,似乎难以知道)
回复

使用道具 举报

🔗
kenyang 2020-4-12 08:49:52 | 只看该作者
全局:
joe297 发表于 2020-2-7 07:09
开一个BST,维护一个mean,total number of integers,number of integers in BST
每有一个新integer,进 ...

哦不好意思,之前看到你的答案,以为前5%和后5%的信息可以不管。
后来想想不可以,因为新数据进来时,BST不止可能删最大最小,可能还得额外加进比最大/最小 更大/更小的数。

我觉得还是需要把全部数据存进BST,并把5%, 95% quantile的iterator存好
回复

使用道具 举报

🔗
yiliaobailiao 2021-11-19 12:51:19 | 只看该作者
全局:
这个是利口 尾巴而无 吗?
回复

使用道具 举报

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

本版积分规则

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