📣 4th of July限时特惠: VIP通行证立减$68
回复: 23
跳转到指定楼层
上一主题 下一主题
收起左侧

Robinhood 电面

全局:

2018(7-9月) 码农类General 本科 全职@robinhood - 网上海投 - 技术电面  | | Other | 应届毕业生
第一题:

代码可以写循环的也可以写递归的

我写的是递归的,然后问如果作为产品你会怎么优化,我说,写成循环的

  1. //螺旋矩阵

  2. #include<iostream>
  3. using namespace std;

  4. int a[10][10];

  5. void Fun(int n)
  6. {
  7.         int m=1;
  8.         int i,j;
  9.         for(i =0;i<n/2;i++){
  10.                 for(j=0;j<n-i;j++){
  11.                         if(a[i][j] ==0)
  12.                                 a[i][j] = m++;
  13.                 }
  14.                 for(j=i+1;j<n-i;j++){
  15.                         if(a[j][n-1-i] ==0)
  16.                                 a[j][n-1-i] = m++;
  17.                 }
  18.                 for(j=n-i-1;j>i;j--){
  19.                         if(a[n-i-1][j] ==0)
  20.                                 a[n-i-1][j] = m++;
  21.                 }
  22.                 for(j=n-i-1;j>i;j--){
  23.                         if(a[j][i] ==0)
  24.                                 a[j][i] = m++;
  25.                 }
  26.         }
  27.         if(n%2==1)
  28.                 a[n/2][n/2]=m;
  29. }

  30. int main(void)
  31. {
  32.         int n,i;
  33.         cout<<"请输入螺旋矩阵维数: "<< endl;
  34.         cin>>n;
  35.         cout<<"显示螺旋矩阵数值: "<< endl;
  36.         for(int i=0;i<n;i++){
  37.                 for(int j=0;j<n;j++){
  38.                         a[i][j]=0;
  39.                 }
  40.         }
  41.         Fun(n);
  42.         for(i=0;i<n;i++){
  43.                 for( int j=0;j<n;j++){
  44.                         cout<<a[i][j]<< "\t";
  45.                 }
  46.         cout<<endl;
  47.         }
  48. }
复制代码



第二题:

[color=rgba(0, 0, 0, 0.87)]concurrency问题,给一串代码,问里面会出现啥情况。
[color=rgba(0, 0, 0, 0.87)]

[color=rgba(0, 0, 0, 0.87)]
  1. def bad_transfer(src_account, dst_account, amount):
  2.     src_cash = src_account.cash # DB read
  3.     dst_cash = dst_account.cash # DB read
  4.     if src_cash < amount:
  5.         raise InsufficientFunds
  6.     src_account.cash = src_cash - amount # DB write
  7.     src_account.send_src_transfer_email()
  8.     dst_account.cash = dst_cash + amount # DB write     

  9.     dst_account.send_dst_transfer_email()
复制代码

您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
函数,那么就变成整个system串行了。
[color=rgba(0, 0, 0, 0.87)]4. 因为邮件的缘故,我提到了rollback,他就让我说一下为啥会rollback,然后假设这个函数包含一个transaction(或者一个transaction包含这函数),那么transaction的开始和结束再哪。

本帖子中包含更多资源

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

x

评分

参与人数 17大米 +146 收起 理由
ddii + 2 很有用的信息!
fayllkw + 2 很有用的信息!
tang529 + 2 给你点个赞!
a_small_potato + 3 很有用的信息!
catyoyo + 1 很有用的信息!

查看全部评分


上一篇:google 电面
下一篇:BB On campus 两轮面经
推荐
catyoyo 2019-9-12 06:45:05 | 只看该作者
全局:
第二题,我的想法是这样的(我不太懂多线程,请指出错误之处)。
1. 首先假设这个函数是多线程环境下运行的,即可能存在多个线程运行同一个函数并且试图修改相同的变量的值。
2. 一开始给两个账号的write加锁(read的锁不加也没关系,看具体的要求,可能金融类公司对读取的数据的要求比较严格,那就对read也加锁,以保证数据准确),然后处理两个账号。这样相当于整个函数是synchronized,或是atomic的(请指正这些术语对不对)。
3. 把邮件放在最后,等两个账号处理完再发。

如果是db的读和写,那就把两个账号先加锁,然后修改值,完了再解锁。这样可以保证不会出现写入丢失的情况。

求指教
回复

使用道具 举报

推荐
 楼主| swsyhhy 2019-9-17 12:43:03 | 只看该作者
全局:
catyoyo 发表于 2019-9-14 22:50
嗯。。这方面我就不太懂,我觉得写的时候应该是读不了的吧。除非写不是原子操作。

如果写不是原子操作 ...

对啊,写的时候加写锁,读的时候加读锁,这个没有什么可以疑问的啊?
我的意思是,读的时候一定要加锁,不然,你在读的同时,一个写锁上来,你读的数据就是一半是以前的,一半是之后的

评分

参与人数 1大米 +1 收起 理由
catyoyo + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
uk8 2018-9-26 22:36:56 | 只看该作者
全局:
LZ Robinhood有內推嗎?
回复

使用道具 举报

🔗
evileyed 2018-9-26 22:46:40 | 只看该作者
全局:
LZ 第二题提到commit model就应该ok了
回复

使用道具 举报

🔗
 楼主| swsyhhy 2018-9-26 23:10:48 | 只看该作者
全局:
uk8 发表于 2018-9-26 22:36
LZ Robinhood有內推嗎?

海投的
可以去领英上面勾搭一下HR
回复

使用道具 举报

🔗
 楼主| swsyhhy 2018-9-26 23:11:48 | 只看该作者
全局:
evileyed 发表于 2018-9-26 22:46
LZ 第二题提到commit model就应该ok了

感觉主要是表达的问题,我觉得如果基础好可以扩展开来讲
虽然我很想扩展开来,但是总觉得自己表达有点捉急,然后每次一说多就都戛然而止...
回复

使用道具 举报

🔗
congzi 2018-9-27 00:38:41 | 只看该作者
全局:
感谢楼主分享!
回复

使用道具 举报

🔗
宛若晨昏 2018-10-14 14:00:31 | 只看该作者
全局:
请问下楼主,第一题为什么如果产品,用循环就比递归好啊??完全不懂它在考什么
回复

使用道具 举报

🔗
lightbulb 2018-10-18 12:47:56 | 只看该作者
全局:
第二题的email在给sender发之前是不是应该先把receiver的钱弄好啊,万一发了之后crash,sender发现自己钱被扣了但是receiver发现自己还没收到,虽说在系统和数据层面上没有影响,但是可能会影响到用户体验哈哈
回复

使用道具 举报

🔗
buaazsj 2018-10-24 06:43:56 | 只看该作者
全局:
想问下楼主onsite了么?可以share 一下HR call 和onsite的情况么?谢谢啦,已加米
回复

使用道具 举报

🔗
 楼主| swsyhhy 2018-11-9 05:16:57 | 只看该作者
全局:
buaazsj 发表于 2018-10-24 06:43
想问下楼主onsite了么?可以share 一下HR call 和onsite的情况么?谢谢啦,已加米

没有onsite,HR面挂了....嘻嘻,这家招得很少
回复

使用道具 举报

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

本版积分规则

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