注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
本帖最后由 helenhelen 于 2020-3-29 00:42 编辑
求米~~
Timeline:
9月底内推
11月中做的OA 传送门 -> https://www.1point3acres.com/bbs/thread-571801-1-1.html
12月中phone interview 传送门 -> https://www.1point3acres.com/bbs/thread-617660-1-1.html
2月初onsite
onsite 是早上10点到下午3点
一共5轮 1轮bq 4轮tech
我选择面试的语言是python
第一个面试官 会来门口接 并且给我check in (他还迟到了)
他还带我逛了一下 介绍了下各种地方干嘛的 泡了个茶 才开始面试...
哦对了 去了我才知道 可以选择用电脑写code 就是很简单的只有highlight的那种
白板我也用了 就是讨论 和描述想法的时候 写的东西
还有 写完 过case的时候 也是写在白板上的
面试官会记笔记 拍照什么的
----------------------------我是面试分割线------------------------------------
第一轮:
题目背景:
你是一家游戏公司员工 你们公司有一个游戏 每个玩家有自己的id 和每次得分
你想统计一下 周末两天 玩家的得分情况 请写一个function
input是 两个list of tuple 分别是周六和周日的得分情况 tuple里面是(id, 当日总得分)
output是 一个list of tuple 是每个id周末两天的得分总和
follow up1:
如果input的两个list 是sorted
output也要保持sorted
怎么做
follow up2:
如果input的list里是每个人每次的得分 (id有重复) 怎么做
follow up3:
如果公司里不同人需要不同的output 比如我需要 周末两天的得分前三名 怎么做
follow up4:
如果想要这个function output一个stream 怎么做 (就比如 call一次 output 第一名 再call 就是第二名 etc)
这一轮比较简单 但是面试官 问了很多python基础知识
比如:
最开始的问题 有没有办法空间优化 (不行因为tuple是immutable)
我写了 for l1, l2 in list1 + list2: 面试官问那个list1 + list2 是什么意思
其他的不记得了 都是中间穿插问的
----------------------------我是面试分割线------------------------------------
第二轮: bq 我就不多说了
---------------------------我是午休分割线------------------------------------------
吃午饭 休息 闲逛 (午饭还挺好吃的 但我怕我吃多了胃疼 就吃的很少...)
----------------------------我是面试分割线------------------------------------
第三轮:
题目背景:
我有一群电脑(node) 是一个tree的结构 每个connection有个传送速
node的定义是
node = {node.id, node.speed}
tree的结构是:
treenode = {node, list of node}
问给一个文件size 最短多久可以从root电脑传到所有电脑上
follow up:
如果是graph (有环) 怎么做
----------------------------我是面试分割线------------------------------------
第四轮:
题目背景:
写一个function input是一个句子(string) 这个function 要一直读 直到有similar的词出现
两个单词similar的定义是:
如果单词1 除了最后一个字母之外 和单词2是一样的 那这两个单词是similar的
ex:
worm
word
follow up:
similar增加一个定义
如果单词1 去掉一个字母 或者 加上一个字母 和单词2 是一样的 那这两个单词是similar的
ex:
word
words
----------------------------我是面试分割线------------------------------------
第五轮:
面试官给了一个function header 让我完成function
function(error: list[list[int, int]], t: int, min_rate: int, len: int) -> boolean
return true if there exists an interval with length len that includes time t and the minimum error rate of the interval is min_rate, otherwise false
follow up:
function(error: list[list[int, int]], threshold: int) -> boolean
return true if there exists an interval where length of interval * minimum error rate of the interval >= threshold, otherwise false
----------------------------我是面试分割线------------------------------------
最后一个面试官 要负责把我送出门 我大概是 2:45左右面完被送出去的?
最后 祝大家心想事成 早日上岸~
求米哦~
补充内容 (2020-3-30 23:20):
第五题我画了一个图 放在评论里 有需要的可以看呀~
补充内容 (2020-3-30 23:53):
hmmm 不知道置顶怎么搞 嘛反正图在8楼
补充内容 (2020-4-2 23:04):
clearify~第一题里面提到sorted 都是说的sort by id哦~~
补充内容 (2020-4-14 09:29):
晕哦 才发现图里例子写错了...
len = 4 是true
len = 5 是false
补充内容 (2020-4-14 09:32):
图里第二个例子应该output true
func(err, 5, 1, 5) -> false |