📣 独立日限时特惠: VIP通行证立减$68
查看: 2710| 回复: 4
跳转到指定楼层
上一主题 下一主题
收起左侧

求问, sparse dot vector multiplication

全局:

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

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

x
经常看到FB的一道题, sparse dot vector multiplication

我觉得应该两种cases:
case1:  (1*n)  * (n*1) = (1)  
case2:  (n*1) * (1*n) = (n*n),  //case2 其实就是 sparse matrix multiply.

所以应该是 Sparse dot vector multiplication 指的应该是case1; 但是感觉代码应该很简单的,
  1.         public int vectorMultiply(int[] A, int B[]){
  2.                 int n = A.length;
  3.                 int result = 0;
  4.                
  5.                 for(int i=0; i<n; i++){
  6.                         if(A[i] == 0 || B[i]==0)
  7.                                 continue;
  8.                        
  9.                         result += A[i] * B[i];
  10.                 }
  11.                 return result;
  12.         }
复制代码
请问我的代码有问题吗, 这个问题有什么tricky的地方吗?
谢谢

上一篇:聊聊coding面试
下一篇:有用javascript刷题的吗?
推荐
tohalay 2017-12-6 12:11:43 | 只看该作者
全局:
这个问题主要的考察点应该在于如何表示sparse vector/matrix,以及如何用sparse representation来进行乘法。如果已经给出dense representation,其实没什么太大意义。
回复

使用道具 举报

🔗
cascade15 2017-12-7 14:01:19 | 只看该作者
全局:
同意楼上的,这么做没有利用上sparse的条件
回复

使用道具 举报

🔗
xiaoquexing 2017-12-8 00:36:44 | 只看该作者
全局:
这个题目,
你的输入应该是两个已经用 (index ,value)存好的sparse list
回复

使用道具 举报

🔗
jason123 2018-2-4 01:07:01 | 只看该作者
全局:
你应该把输入改成两个2d array,里面随机填写0 和 1,然后输出是另外一个2d array
回复

使用道具 举报

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

本版积分规则

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