转发: Facebook 2019 本科 Summer Intern On Campus面经

上来直接开始做题,第一题是给一个数组里面是commit number, 分别给good commit 的number和bug commit的number还提供了一个boolean isBug(int commitNumber)说这个function的cost很大
要求返回出现第一个bug commit的number
int findFirstBugCommit(int arr[], int good, int bug)
比如 9, 10, 11, 12, 13, … 27
good good bug bug
输入(9, 27) 要求返回12
第一题我用了Binary Search, 面试官之后问了test cases, edge cases然后拍了白板的code就进入下一题

第二题是两个binary string相加,写完后followup是改成十以内任意进制相加

这题好像挺高频的,所以以前做过,最后很顺利的写完了.

然后就是behavior question问我一个项目组员之间发生过什么冲突怎么解决的,然后让我问问题,结束了.
感觉题都是见过的,不知道是不是面试官本身准备了三道题然后我没时间了就问我两题= =

P.S.:我去的时候听上个面试的人说今天有一个人面了一道easy+一道hard(alien dictionary), 他自己就面了一道hard.
感觉自己运气算好的(如果面试官只打算问我两题的话),希望能有消息

楼主,binary string 相加如果是其他进制的话就是改一下 %k 那里其他应该不需要变吧?谢谢!

还有除/的地方

哦哦对对哈哈谢谢楼主!

求问楼主什么叫“分别给good commit 的number和bug commit的number”?是good commit和bug commit的数量吗?

同问楼主,int good和int bug都是什么意思?以及array里面是只要出现了bug后面就全是bug吗?谢谢!

int good就是第几个commit, 这个commit没bug
int bug是第几个commit, 这个commit有bug
不是, int bug可能不是第一个有bug的commit, 题目要求找第一个有bug的commit是哪个

不是数量,是第number个commit

楼主可以分享下最优解的思路和想出来的edge case吗?
我的想法是binary search的end pointer应该从int bug那个位置开始找。但是不知道int good应该怎么用…

那个bug的那个好像是利口上面的first bad version?

1 Like