美国卖车经历分享

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

H1B/绿卡遥遥无期
又不想回国
来东南亚最大的互联网集团工作?
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
查看: 2697|回复: 13
收起左侧

google面经

[复制链接] |试试Instant~ |关注本帖
我的人缘0
yanlingyin 发表于 2015-11-28 04:43:15 | 显示全部楼层 |阅读模式
  此人我要顶:
 
66% (2) 【我投】
  此人我要踩:
 
34% (1) 【我投】

2016(1-3月) 码农类General 硕士 全职@Google - 猎头 - 技术电面  | Fail | 在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
时间45分钟,三道题。
第一道, code review,问以下代码有什么问题:
public class Ad {
  private String adText;
  private String keyword;
  private int bid;. 1point3acres
  private Account account;

  public Ad(String adText, String keyword, int bid, Account account) {. Waral 博客有更多文章,
    this.adText = adText;-google 1point3acres
    this.keyword = keyword;
    this.bid = bid;
    this.account = account;
  }

  /**
   * A user has clicked on this ad.  Bill the appropriate account.
   */
  public void handleClick() {
    switch (account.getType()) {. visit 1point3acres for more.
      case Account.CREDIT_CARD_ACCOUNT:
// expired date,etc
        Biller.billCreditCard(account.getCreditCardNumber(), bid); // async call
        break;
      case Account.PREPAID_ACCOUNT:
        account.setPrepaidBalance(account.getPrepaidBalance() - bid);
        if (account.getPrepaidBalance() <= 0) {
          account.setEnabled(false);
          EmailUtil.sendEmail(account.getEmailAddress()); // async call
        }
        break;. 围观我们@1point 3 acres
      case Account.BANK_TRANSFER_ACCOUNT:
        Biller.billBankAccount(account.getBankRoutingNumber(),
                               account.getBankAccountNumber(),
                               bid); // async call
        break;
      default:. 牛人云集,一亩三分地
        throw new IllegalStateException(
            "Unknown Account type: " + account.getType() );
    }
  }

  /* All other methods omitted for brevity */
}


我也不知道有什么问题= =。。。回答的很菜。. 1point3acres

第二题,有一个backend server和一个frontend server,backend 进行query并返回结果,问怎么处理短时间类大量相似的search request。 来源一亩.三分地论坛.
class Backend {
  static Response query(Request request) { … }
}

class Frontend {


}
. visit 1point3acres for more.

第三题,算法,一个sort array,给一个数字,发现这个数字第一次出现的index。 来源一亩.三分地论坛.

总之。。。估计前两道题答得好的话应该不会出现最后一道算法,题还很难的说。。。。反正我一道也不会╮(╯_╰)╭

评分

参与人数 1大米 +5 收起 理由
reality + 5 感谢分享!

查看全部评分


上一篇:A家OA2(11.27due) +Maze如何pass全部test case?
下一篇:Amazon OA题Find path in maze解法,复杂度,Followup集中讨论
我的人缘0
munez26 发表于 2015-11-28 07:18:24 | 显示全部楼层
  此人我要顶:
 
100% (1) 【我投】
  此人我要踩:
 
0% (0) 【我投】
第一题我觉得应该给用户反馈,是否成功bill? 给一些合适的反馈。尤其是它用的是async call,这个点击提交之后,这个步就算完了。除非在async call里面解决这个问题。但在async处理是否恰当值得商榷。求继续讨论
回复 支持 1 反对 0

使用道具 举报

我的人缘0
reality 发表于 2015-11-28 06:38:50 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
第一题我感觉是不是ad属性里有account不大好。。handleClick(Account account) 合适些?求讨论。
回复 支持 反对

使用道具 举报

我的人缘0
jkingxt 发表于 2015-11-28 14:55:54 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
我觉得第一题可能是多线程的问题?猜的
回复 支持 反对

使用道具 举报

我的人缘0
pcHC 发表于 2015-11-28 15:39:08 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
第一题感觉是Account 不是thread safe?可能在prepaid的那里Set balance出问题?不太确定
. 牛人云集,一亩三分地
补充内容 (2015-11-28 15:40):. 牛人云集,一亩三分地
第二题的话,我觉得可以用一个LRU存query?
回复 支持 反对

使用道具 举报

我的人缘0
hhzzk 发表于 2015-11-28 15:44:15 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
第二题用缓存?
回复 支持 反对

使用道具 举报

我的人缘0
bobzhang2004 发表于 2015-12-1 11:19:01 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
第二题是在前端写一个LRU Cache吧

补充内容 (2015-12-1 11:19):
这题目确实在面试时很难想啊,面试官有什么hint吗?
回复 支持 反对

使用道具 举报

我的人缘0
yjfox 发表于 2015-12-1 15:19:05 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
个人认为,代码有问题的地方是PREPAID这个block里,
. 1point 3acres 论坛其他几个case都是async, 异步处理,不用担心race condition。但是这个prepaid是直接setBalance,没有任何保护,显然需要问面试官这个function具体怎么写的,是否线程安全
. 牛人云集,一亩三分地
可能因为lz是跳槽所以问的都是比较接近实际工作
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

我的人缘0
D调的华丽 发表于 2015-12-3 04:24:05 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
yjfox 发表于 2015-12-1 15:19
个人认为,代码有问题的地方是PREPAID这个block里,
其他几个case都是async, 异步处理,不用担心race con ...

lz说的很有道理诶
回复 支持 反对

使用道具 举报

我的人缘0
七夜雪 发表于 2015-12-3 06:40:53 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
yjfox 发表于 2015-12-1 15:19
个人认为,代码有问题的地方是PREPAID这个block里,
其他几个case都是async, 异步处理,不用担心race con ...

同意!

只是不明白的是为什么async call不需要担心race conditions啊.async我理解是目前这个thread不会执行和等待method的运行,但是如果Biller和EmailUtil没写好的话在它们的thread也会有race condition吧。

还是说我们只看Ad这个class的code...Biller和EmailUtil没写好不关Ad的事。。。
回复 支持 反对

使用道具 举报

我的人缘0
yjfox 发表于 2015-12-3 11:28:47 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
七夜雪 发表于 2015-12-3 06:40.1point3acres网
同意!

只是不明白的是为什么async call不需要担心race conditions啊.async我理解是目前这个thread不 ...

因为一般这么标注了,应该不关乎这段代码的问题,不过现在无法跟面试官交流没有context无法确定
async是为了转移heavy的操作,一般不这么做的话这类操作会阻塞住现在运行的thread,所以如果这里还要check race condition的话就失去异步的意义了。

不过请教了下在职senior后 说 这段代码架构就有问题,不符合production中的ood。
我之前提的问题反而不是那么明显. 1point3acres

比如, handleClick可以放到account中,get rid of switch
回复 支持 反对

使用道具 举报

我的人缘0
七夜雪 发表于 2015-12-3 12:33:11 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
yjfox 发表于 2015-12-3 11:28
因为一般这么标注了,应该不关乎这段代码的问题,不过现在无法跟面试官交流没有context无法确定
async是 ...

原来如此......我完全没有从这个角度想......
回复 支持 反对

使用道具 举报

我的人缘0
zhaoweigg 发表于 2016-6-14 14:58:24 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
又想,翻尸了,大家说的都对,补充下就是我觉得prepaid那扣完了钱在check <= 0 有点搞笑
回复 支持 反对

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /3 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-6-21 03:09

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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