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

新鲜Uber电面

全局:

2019(4-6月) 码农类General 硕士 全职@uber - 内推 - 技术电面  | | Pass | 在职跳槽

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

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

x
给两个数组
[1, 3, 5, 9  ]
[1, 3, 7, 11]
计算他们的similarity = intersection / union
此题
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
ng>补充内容 (2019-2-2 03:23):
求点大米 谢谢

评分

参与人数 7大米 +37 收起 理由
匿名用户-LSIHA + 20
serenitype + 1 给你点个赞!
wawjchinawct + 3 很有用的信息!
financeFree + 5 很有用的信息!
shaneliiu + 3 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分


上一篇:热带雨林applied scientist店面
下一篇:热带雨林实习店面
🔗
russzheng 2019-2-2 07:55:49 | 只看该作者
全局:
求问第二个follow up 应该怎么优化呢?
回复

使用道具 举报

🔗
 楼主| csehao 2019-2-2 08:00:55 | 只看该作者
全局:
russzheng 发表于 2019-2-2 07:55
求问第二个follow up 应该怎么优化呢?

我也不知道
我答了很多种可能
从Bitmap, 到sparse matrix, 到Binary Search, 到针对数组的range分类, 最后答的是

因为大部分都是0 说明很有可能对于比如 array
[1, 3, 5, 7 ... ]
数字1来说, 大部分别的array都不包含1. 因此 我们可以把所有的Array 分成2类 包含1的和不包含1的, 这样包含1的应该是个很小的集合, 比如只占总数的1%, 然后这些array之间的similarity肯定不是0了, 就一一计算.
然后在处理数字3, 5, 7, 直到处理完所有的出现在array中的数字.
过程中把所有的已经处理过的pair记录标记下来, 例如用hashmap, 以免重复处理.

面试官也没说对错 时间到了.
回复

使用道具 举报

🔗
russzheng 2019-2-2 08:18:44 | 只看该作者
全局:
csehao 发表于 2019-2-2 08:00
我也不知道
我答了很多种可能
从Bitmap, 到sparse matrix, 到Binary Search, 到针对数组的range分类,  ...

我还在想,如果所有的array都是sorted,那在算jaccard similarity之前可以先判断 b[0] > a[a.length - 1] || b[b.length - 1] < a[0] 因为这样子就肯定不会有重合。这样子就相当于大多数pair都只是constant time,但是因为要算所有的pairs 所以时间复杂度的average case最小也是o(n^2)。但如果绝大多数都是0,那可以对range分类 排序 然后时间复杂度的average case应该接近o(n)?
回复

使用道具 举报

🔗
 楼主| csehao 2019-2-2 09:12:50 | 只看该作者
全局:
russzheng 发表于 2019-2-2 08:18
我还在想,如果所有的array都是sorted,那在算jaccard similarity之前可以先判断 b[0] > a[a.length - 1] ...

这个我跟面官提到了 他说假设range非常大 而且大部分都有重合 所以这个应该不是他想要的 就move on了.
回复

使用道具 举报

🔗
Venus 2019-2-9 06:07:17 | 只看该作者
全局:
请问一下楼主前两问是这么想的吗:

第一问 :two pointers or binary search
follow up: while 循环跳过重复就行了

follow up 2: 我觉得楼主说的根据起始元素来看的方法挺好的
我第一个想法有点类似 我想到union find去了 就是把similarity不为0的元素group一起 group在一起的array找similarity 如果不是一个group肯定为0
回复

使用道具 举报

🔗
 楼主| csehao 2019-2-9 06:08:29 | 只看该作者
全局:
Venus 发表于 2019-2-9 06:07
请问一下楼主前两问是这么想的吗:

第一问 :two pointers or binary search

第一问就是two pointer就可以了
回复

使用道具 举报

🔗
期末求过 2019-2-28 12:00:35 | 只看该作者
全局:
有没有可能把数组sort一下,然后只有临近的 similarity可能是1?但感觉复杂度也挺高的
回复

使用道具 举报

🔗
hj867955629 2019-4-8 02:15:44 | 只看该作者
全局:
数百万个数组,感觉是倒排索引?假设m个数组,要比m^2次。倒排索引之后,只有是公共元素的才需要考虑,例子里面
[1, 3, 5, 9  ]
[1, 3, 7, 11]
=》
1 : [A, B]
3: [A, B]
5 : [A]
...

只需要考虑很少的像1和3这样的元素。
回复

使用道具 举报

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

本版积分规则

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