一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 828|回复: 5
收起左侧

求bless,求讨论

[复制链接] |试试Instant~ |关注本帖
小白too 发表于 2014-1-12 08:00:11 | 显示全部楼层 |阅读模式

2014(1-3月) 码农类 博士 实习@Google - 网上海投 - 技术电面 |Other

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

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

x
替友报面经

总共两轮
每轮45分钟

第一个人感觉是个老中,比较nice。

第一题比较简单,考察c++面向对象的实现方法。写一个类,然后写另外一个类继承它。写构造函数析构函数,然后声明一个父类对象的指针,用子类的构造函数构造它。然后问这个对象析构的时候调用的哪个析构函数。就是c++面向对象的各种基础知识。然后问了虚函数和纯虚函数。

第二题 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
写一个random函数,产生0 ~ n-1的数,有一个black list,产生的数不能在black list里。

int myRandom(int n, vector<int> bl). From 1point 3acres bbs
{
    //...... Waral 鍗氬鏈夋洿澶氭枃绔,
}
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
时间复杂度log(n)

最后问有什么要问他的。

第二轮
一个老美

第一题:
设计一个类
已知有一个函数可以得知给定的某个时刻的数据量。
设计一个类,有两个函数,一个可以求每分钟的平均读入数据量,一个可以求每小时的平均读入数据量。

做这个题目消耗的所有的时间,没做到第二题

本帖被以下淘专辑推荐:

hxtang 发表于 2014-1-12 12:32:29 | 显示全部楼层
bless~
第一轮那个coding问题如果假设bl是sorted的话就是个二分查找问题。先generate 0~n-bl.size()-1中的一个数
然后把这个数map到{0~n-1}-bl那个set中去。log(bl.size())时间。
但是其实amortized cost没有直接开一个大小为n的数组,通过置换把不在bl中的数放一起快。那个除了第一次是线性的后来就是常数的了。就是如果n很大很大的话空间太大。. Waral 鍗氬鏈夋洿澶氭枃绔,
第二轮那个题的意思是不是比如每秒update一次最近一分钟里的平均数据量,每分钟update一次最近一小时的平均数据量?如果是这么做的话可以拿两个queue记录最近60秒/60分钟的数据变化,然后update queue的同时incrementally更新measurements供读取。
回复 支持 反对

使用道具 举报

 楼主| 小白too 发表于 2014-1-12 22:32:58 | 显示全部楼层

赞解答。第一轮第二题他并没有说bl是不是sorting的。
刚开始没说时间复杂。是面完的时候问了面试官,面试官是这个答案应该是logn。

补充内容 (2014-1-12 23:10):. more info on 1point3acres.com
那个black list是没排序的。。
回复 支持 反对

使用道具 举报

 楼主| 小白too 发表于 2014-1-12 22:34:14 | 显示全部楼层
hxtang 发表于 2014-1-12 12:32
bless~
第一轮那个coding问题如果假设bl是sorted的话就是个二分查找问题。先generate 0~n-bl.size()-1中的 ...

第二轮那个当时提出了可以每秒update,那个面试官说这样不对。可能对题目理解还有问题,不知道有没有人也面到了类似的
回复 支持 反对

使用道具 举报

yvetterowe 发表于 2014-2-20 10:48:36 | 显示全部楼层
hxtang 发表于 2014-1-12 12:32
bless~. 1point3acres.com/bbs
第一轮那个coding问题如果假设bl是sorted的话就是个二分查找问题。先generate 0~n-bl.size()-1中的 ...

小白弱问...为啥“把这个数map到{0~n-1}-bl那个set中去”的时间复杂度是log(bl.size())捏。。。谢谢啦~
回复 支持 反对

使用道具 举报

hxtang 发表于 2014-2-20 22:23:29 | 显示全部楼层
yvetterowe 发表于 2014-2-20 10:48
小白弱问...为啥“把这个数map到{0~n-1}-bl那个set中去”的时间复杂度是log(bl.size())捏。。。谢谢啦~

假设n[k]表示0~bl[k]里不在blacklist里的数字个数,生成的随机数是r
n[k]=bl[k]-k,是不需要事先计算出来的。
那么就是先找p满足:n[p]<=r<n[p+1],这一步是二分搜索,时间长度是log(n.size)=log(bl.size())
找到以后就可以map到不在blacklist里的随机数了
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-4 16:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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