今儿面试了FB的E5 没有特意准备,只是想看看自己的真实水平如何。趁着热乎来聊一聊
题目算法不变,只是有一些表述上的演绎
算法:
1. 职级对标是一个很不错的网站,有很多公司的薪酬信息。现在想实现一个算法,随机取得职级对标薪酬数据中的一个公司名,随机概率是公司薪酬数量和总薪酬记录之比。
例如 input是 [(alibaba, 200), (tencent, 300), (bytedance, 100)], 则算法返回alibaba概率是200/(200+300+100), tencent的概率是1/2
2.给定一个BST树 把BST树转换成 balanced BST
3.Anagram of array, 比如给定[a, b, c], 返回[[a,b,c],[a,c,b], [b, a, c], [b, c,a], [c, a, b], [c,b,a]]. 给定[a,a,a] 返回 [[a,a,a]]
get shortest range of substring for given strings. 比如 “bcaadabc”作为string, “cadb”作为subtring,那么最短的包括substring所有字母的substring是 “dabc”
给定一个histogram array求最大的矩形范围,比如 [2,5,3,1], 最大的矩形范围是15(5*3 = 15)
给定n个sorted array,要求实现一个iterator,可以按顺序输出所有n个array里的元素,比如
[[1,2,3], [1,3,3], [0, 4,5]] => [0, 1, 1, 2, 3, 3, 3, 4, 5]
系统设计:
请设计一个 联系人列表,可以显示联系人登录状态,显示用户的所有联系人。
简历轮:
问简历,最有意思的项目,等等。
感觉面试题都不难 如果认真准备肯定能答好的。