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

[高频题] 关于fb高频题1570: Dot Product of Two Sparse Vectors的问题

全局:

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

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

x
这道题评论里基本都说过被面过,很多人也分享了经验说第一个想到的是使用hashmap但是面试官要求用其他方法因为不够efficient但是看解法的话map好像是最有效率的了?因为用tuple的话也是O(l1+l2)而map就是Ol1,看大家讨论从硬件角度讲用个基础的Array最好,但是感觉面试官也不会期待这个答案?

再说follow up就是说把一个sparse vector换成一个很短的不sparse array如何能更有效率的改答案,我看很多人都说binary search,但是我没太明白是在哪条array上search呢?我理解的话感觉map的方法还是最有效率的啊?是我理解出了错误吗?

想看看大家的看法或者有没有当事人现身说法呢?谢谢!

评分

参与人数 1大米 +5 收起 理由
14417335 + 5 给你点个赞!

查看全部评分


上一篇:facebook最高频(就是最高的,没有之一)题目的follow up
下一篇:2022年2月亚马逊,微软等公司高频题总结 求加米
全局:
两个 array of array?空间换时间
第一个先行后列 [[r1_a, [c1_a
, v1_a], [c2_a, v2_a],...],...]
r1_a, c1_a 是第一个non zero elem,值是v1_a

第二个先列后行  [[c1_b, [r1_b, v1_b], [r2_b, v2_b],...]],意义同上。

Dot product 的时候 新矩阵第一个元素位置(r1_a, c1_b) ,值是两个array 一起遍历 ci_a== ri_b 的时候相乘,不然就是0.

complexity虽然也是O(n), 是非零元素数。但是是sequential memory access,即使不算hashing,miss, collision也比unoreder_map的random memory access快百倍。

补充内容 (2022-02-09 12:17 +08:00):
如果需要access elem可以用bisect。如果只是dot prod遍历就可以。

补充内容 (2022-02-09 12:18 +08:00):
求米刷包裹

评分

参与人数 2大米 +6 收起 理由
14417335 + 5 给你点个赞!
xxnooryesxx + 1 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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