Bloomberg电面 觉得搞笑

原帖地址:一亩三分地

第一次写面经,是因为这个觉得比较搞笑,不过感觉已经跪了~~

电面是个妹子,声音很好听,一上来就叫我介绍下自己,然后the project you are most proud of,接着问一下实习经历吧,大概20分钟,来到了技术题。首先我没有认真刷面经,所以那题我没见过,一上来就说什么股票开市闭市什么的(stock, startDate, endDate),讲了半天,我也理解不了,她说不清吧,也不愿意在pad上写一些例子,真是捉急啊,最后搞了20分钟终于理解了:

有一个latency api,里面有一个方法叫findEarliestTradingDate(String stockName, int startDate, int endDate),比如传入IBM(股票id),1970(用户想开始交易的时间),1990,返回一个用户能开始交易的最早时间(这里我就用年来表示一个单位吧),例如IBM这个股票是从1980年才有的
input:ibm,1970,1990;output就是1980(因为1980年才有嘛)
input:ibm,1990,2000;output就是1990
input:ibm,1900,1960;output就是-1或者异常吧

总之api理解了半天,但这个不是题目,题目是写一个wrapper class去提高这个方法的performance。我当时就醉了,完全不理解为什么要提高效率,不就是哪1980和input做比较嘛,很直接啊,不知道她想干嘛。后来我理解了,她说如果start和end的间隔很长,比如1000年,可能要用时20分钟(我去,比较个数字要20分钟嘛。。。),怎么提高效率。Ok,那就binary search吧,分一半然后去调用api,她说还是不行,万一range是2000呢,这是我想到了,应该是DC了,code我写出来:

int wrapperFunction(String stockName, int startDate, int endDate) {

if (startDate == endDate) return findEarliestTradingDatestockName, startDate, endDate); //调用api
int mid = (startDate + endDate) / 2;
int res = wrapperFunction(stockName, startDate, mid);
if (res != -1) return res;
return wrapperFunction(stockName, mid+1, endDate);
}

我也不知道对不对,就瞎掰的,大神请指点啊。

然后就结束了,觉得已经跪了~~~