Chapter 59 Bloomberg 2015
59.1 TryingAndTrying 发表于 2015-7-28 03:06:00
去了bloomberg onsite.整个面下来,感觉问的挺基本的.但是我面的题目,都不是直接给你算法题.基本都是应用题.给你一个生活中的例子,让你解决,然后需要你自己抽象出算法题.我下面有的是是直接分享算法,有的还是应用题.有的时候需要跟他们讨论一下,input和output.每个问题结束,都会有follow up,以及时间空间复杂度分析. 第一轮:两个美国小哥:分享了一个学校经历 1 check duplicates: 一个数组,只有一个是重复的,找出这个重复的数. 解法:说了一下bruth force, 然后用hashset优化.
2 valid parenthesis: 一个string, 里面有各种各样的括号,判断这些空号是合法的,其他的符号就忽略. 解法:stack, leetcode有原题.
3 best time to buy and sell stock: 只交易一次,计算最大利润,以及买入和卖出价格. 解法:leetcode有原题
4 股票交易情况下,有很多的上市公司.你需要求得上市公司是哪一年上市的.已经设计好了一个api的function, 但是他返回的年份有一定的规则.然后时间复杂度是o(n). 你要利用已经给你的api, 去求得某一个股票的上市时间,并且时间复杂度要缩短.
//假设apple实际上市是1995年 public int getYear(int startTime, int endTime, String name) { //1. 输入: 开始时间1990,结束时间1993,苹果; 输出:1990 //2. 输入: 开始时间1996, 结束时间1998,苹果; 输出0 //3. 输入: 开始时间1992, 结束时间1996,苹果;输出1995 }. From 1point 3acres bbs
解法binary search O(log n)
第二轮:一个美国人一个印度人:分享了一个学校经历 1 设计一个音乐播放器,设计class, 以及各种存储歌曲和playlist的方式. 然后完成shuffle的算法; 解法我是用hashmap动态存playlist,然后用arraylist存所有的歌(因为查找方便,randomly access),然后用设计纸牌的shuffle 算法做的music shuffle.
2 美国人打开chrome,说主页上会显示最长访问的8个网址,你如何实现这个功能. 解法:min heap + hashmap
3 我有一个function: doSomething(); 这个function有一个限制十秒内只能被call10次,如果十秒内多于10次,系统会报错.如何设计一个报错的功能. 解法:size 10的queue. 没超过10的size, enqueue new call, else dequeue 第一个call. 并比较当前call和第一个call的时间,超过10秒,输出warning.
4 印度人说,我现在心里有一个数,你可以说任意的一个数,我可以回答你大了还是小了.你要用什么的算法思想来猜数. 解法我说了两个,他没有说范围的时候, left window and right window –> right window以(2^n)的速度递增,而left window覆盖上一次的right window,确定了两个window,做binary search. 他说了范围直接用binary search.两个解法都是log(n)时间复杂度.
第三轮 一个美国人的manager:问了一下你喜欢的公司是什么样子的? 1 题目有点不记得了,貌似说了一下对象存在哪儿?我说heap. 然后他问了些关于garbage collection的东西和finalize()的东西.
2 不用乘法运算符,计算两个数的乘法 解法:用了位运算.经理人很好啊.因为我位运算做的不是那么熟练.一开始给了一个对的方向,告诉了位移法的步骤,然后他说那样不好写代码,然后提示了我一下,我就换了一个思考方式.最后做出来了.
3 开放题 你现在是一个风投顾问,帮很多有钱的人投资.你觉得什么样的情况会使得有些人赚更多钱,而有的人赚不到钱. 4 演示terminal, 聊天,开玩笑,聊天,继续开玩笑,结束
第四轮 美女manager 问了一下现在找工作的情况,和一些常规的hr问题:比如你选择工作的标准是什么,你最喜欢什么样的工作环境.然后聊天,然后让我赶紧去机场,别错过灰机了.
7月21日面的.现在还没有消息.心情很烦躁.发面经给马上要面的人.准备准备.有啥题,需要讨论的,留言就好.保佑保佑~~~ 好人一生平安
59.2 anonym 发表于 2015-7-25 09:45:37
第一轮: 1. Longest Common Prefix 时间复杂度O(l * n)
Binary Tree Inorder Traversal
Binary Tree Zigzag Level Order Traversal.
第二轮:
Unique Paths. 时间复杂度O(m * n) follow-up:优化空间.
给一个tree,对于从root到leaf的每条路径,求出路径上所有节点之和,return这些和.-google 1point3acres
Add Two Numbers.
第三轮: manager
第四轮: HR
补充内容 (2015-7-24 20:48): Add Two Numbers还问了时间复杂度 O(max(m, n))
59.3 JoeQi 发表于 2015-4-2 08:51:55
3月中旬onsite,3月低收到拒信.面了四轮,感觉每轮都聊得很好.我能想到可能的原因是专业不太matach吧,没有c++相关的project. 四轮都是白人. 第一轮: 1.给定一个function, double getprice(double stock) ,然后 让写怎么利用给定的function来实现double getstock(double price). idea就是binary search. 写了代码 2. find intersection of two linked list. 老掉牙的题目了. 3: find elements in A that is not in B . 用hashset过了.
第二轮: 1. flaten 2D linked list, 很多人报到过,因为之前看过,所以我思路有,一边讲一边写出了代码. 2. find mode value in an unsorted array. 我的思路是先radix sort,然后从左到右扫了一遍,update之前出现最多次数的count和对应的数. (mode value就是数组里出现的次数最多的element,不一定超过数组数量的一半,所以majority vote 不行). radix sort没写代码,只写了后半部分,我思路有,只是有个人比较rush 应该是刚学做interviewer,因为另一个interviewer几次提醒过这人不要rush.我也是因此学会了rush的这个用法..
第三轮 Hr
第四轮 hiring manager. 此人不太平易近人,在bloomberg 工作了10几年.问了简历和project.当问我最熟悉的语言的时候,我说除了matlab 就是C++就,她笑了我也笑了.不知道问题是不是出在这里,是不是我应该不这么直白的.技术问题就问了一个,给定一个10个无序的字母,如何在一个dictionary找到包含10个字母中最多的单词.我想到的是,扫一遍dictonary, 看那个单词包含最多所指定的10个字母,她说有别的方法吗?我说把字典存在hash set, 然后10个字母的任意数量的任意combination hash下,从10的combination hash起,依次减少知道找到那个单词.最后又讨论了下排序有帮助么?感觉她似乎也不知道答案. 她给的反应挺好,不知道是不是只是表面上的.聊了差不多半小时左右,我们边谈着边下楼了.
总之感觉是挺好的.有四轮,每轮都感觉挺好的.特别是第二轮之后那两个人都说了great还是good忘了.被拒了有点意外和受挫,但是没办法. 大家 给我 加点 大米吧,没大米真的很不方便.何况我感觉还有和此网站打好一阵交道.
特别提一下:Wifi可以免费的.我住的是pitspatrick (单词可能没拼对) 一个新西兰风格小酒店.在前台也被告知是收费wifi,当时我是想就算收费也要用的,因为要复习.所以在房间想看多少钱一天,没找到相关信息,就打了一个电话咨询下网站那个电话,结果对方问了我是哪个酒店哪个location,然后告知我应该有24小时comlementary wifi,可前台跟我说过要收费啊,他说他给前台check一下,两分钟后告诉我24小时免费wifi. 然后我填入我信息,果然是24小时免费.第二天早在酒店遇到同面试的哥们,他吐槽wifi收费一说,我跟他说了我的情况.他说他填信息之后显示要15刀一天.所以我猜测酒店在赚我们这些面试者的钱,按道理应该是免费wifi的,所以大家可以打用wifi时pop 出来的网站,打那个电话可以免费wifi.
59.4 notturno 发表于 2015-7-25 00:08:17
电面和6月底onsite.
电面: 1 股票 buy and sell sotck I. 2 给一个char矩阵,打印从左上都右下的所有路径string,只能向右和向下走
onsite两轮游 第一轮: 1.两个int数组,第一个存数,第二个存数的个数.比如{2,3,5},{1,2,3}.第一个数组是有序的,代表2出现1次,3出现2次,5出现3次.实现一个iteratore class,要有hasnext()和next()两个函数 2.输入今天日期,参数是一个数字代表天数.比如今天7月24号,给出1000天后的日期.这个题看着简单,写代码就知道多麻烦.判断是否经过闰月,以及一个月30天,31天等问题. 第二轮: 马拉松设计题,坛子里有面经总结,可以搜一下这道题.大概意思就是有一些sensor,每当有运动员跑过一个sensor要更新一个前十名的名单.估计是跪在这了.虽然设计题没有标准答案,不过交流结束以后感觉heap绝对不是想要的答案.heap的问题是只能保证第一个人,后面的人如果没有poll出来仍然是无序的.HashMap实现是没问题的,讲清楚怎么sort就可以了.
59.5 smith 发表于 2015-1-23 12:31:16
20号面的onsite
第一面:一个黑哥,一个亚裔(不太确定是不是老中) 先介绍简历上的一个project,大概讲了一下,没有被追问,接着问coding 1. reverse Integer,说了几个test case 2. return index of target value in a sorted array, 就binary search 3. 给马拉松比赛,设计个系统,要能知道通过每个check point的排名,然后问能不能优化之类的.
第二面:一个老美,一个三哥,都是三哥在出题 1. flatten binary tree to linked list, 一开始题意理解错了,后来又重新写…有点不太顺利 2. remove space in a string.
manager面: 一个三哥manager. 问简历,问经历,问感兴趣的方向. 1. sort three colors 2. 不断输入股票交易数据,每个输入有名字和成交量,设计数据结构和方法,返回交易量top10的股票名字
HR面: 为什么EE的要找CS工作 毕业时间,感兴趣的方向,实习经历 觉得自己有哪些方面需要进步,说三个 找工作时最看重的三个因素 有没有别的offer之类的
59.6 ethan11015 发表于 2015-7-20 02:27:42
流程不多說都是先問proj background talk;
–1st Round– 國人leading美國小哥shadow 國人很照顧 真心感謝!! pre, in, postorder的recursive,iterative寫法in+post 還原tree, M個物品,N個箱子有幾種排法(dp (不需要解釋什麼了吧…) 人都很親切, 聊天也聊得很愉快, 介紹了好多他家公司及一些趣事 相談甚歡, 帶至另一個房間準備下一輪
–2nd Round– 亞裔+烙印 三哥很nice 先上了merge two sorted array再來cach(LRU), 寫得差不多就換另一位不苟言笑的出題Top 10 stock price/volume streaming….沒寫code 討論算法hashtable+heap還討論了hashtable實作,time complexity,資料量大的時候怎辦(這不都考古題嗎…). 最後問了一些問題,利用上一輪聊得到的內容再聊個天,亞裔哥終於有說有笑了… … lz信心滿滿期待下輪 then 一個漂亮的女孩走進來:seems like you are done for the day. (…fxxk off阿lz不是要妳阿怒丟lunch box.. anyway,想說好吧利用時間去周邊晃晃time square, central park也都在附近阿!! lz一走出大樓..哇操…下著大雨!!!但這時的lz已經什麼都無所謂了就走近雨中往下一個目標前進了..
感謝bb讓我能夠第一次走在ny街道上,從機場到旅館bb有給專車,旅館的wifi也是免費的,去onsite的各位別擔心,給的$100搭車回機場加吃飯絕對夠的!! (最後班機delay三小時囧bad bad luck…凌晨抵達感謝接機小夥伴一夜不睡 感謝地裡大大們的面經才讓小的我能夠輕鬆應對就當累積經驗吧! 最後 還沒找到,正在找的各位一起加油吧!!
59.7 zijianz 发表于 2015-4-9 11:54:38
昨天刚去的Bloomberg的onsite面试,大Bloomberg居然霸气的不签NDA,所以来回馈一下这个版.
楼主本来也就没报多大希望,总归4月1号以后公司筛人狠的话也合情合理合法,心里想着是两轮游就在纽约玩一玩,反正晚上七点的飞机.
先提一点,早上一去,就我和一个印度人坐在那里,我就冲他笑了一笑准备聊一聊(当年在Mathworks实习的时候有一个印度前辈对我很好,所以我对印度人很有好感),结果印度大哥上来就是一句you know this position is filled.我当时还没反应过来,他接着说他学校上礼拜来了十几个人都是两轮游.我心里顿时就笑起来了,我擦难道我遇到了传说中的东巴!!!(看过全职猎人都知道我在说什么)当然,做人要实在,我还是假定他不是为了吓唬我而真是这么想的,就顺着他的话聊下去,什么刚过4月1号招人肯定不猛啊之类的,东巴大哥最后脸色也不太好看了… 楼主前几天被fb加面,而且个人觉得面的很好,然后被HR打电话拒了,HR发邮件要给我打电话的时候我人都亢奋了,然后居然是拒绝,不夸张地说瞬间脑子嗡了一下,说不出话来,脸上瞬间全是汗.所以曾经沧海难为水,现在想在心态上影响我基本等于不可能.
另外,我认为所谓过了4轮就等于技术过,如果不是过4轮的人太多就等于有offer这个理论有一个bug,第四轮是HR,有4轮可以确定过了前两轮,如何确定过了第三轮?而且用普通人的思路思考,肯定去面大于position数量的人,然后差不多一星期做一次决定,选前几名.所以过4轮基本等于有offer应该是不对的,撑死是过了4轮等于是最后decision中的一个选择,也就是入围而已.
BB整体真的不错,绝对纽约的感觉,有技术,有媒体,有采访室,前几天皮特夫妇还来过.而且装修就是高效大公司的样子,不像加州公司为了个性而个性.其实楼主认为加州的那几个公司才是真正的aragent,每次面试都是直接追求这道题的一种解法,结果也是面试官的一人看法,两人同面其实更公平一些.而且你会c++我可以考你c++,java考java,费劲在旧题上拐弯藏线索来弄出新题其实并没有太多意义,说白了你考我一道我没做出来,同一时间让我考你一道你就能20分钟最优解的做出来了?这一点真的支持亚马逊对new grad的做法,拉过去,一天做一个大项目,这才是真本事(可惜楼主还是挂了那次).
另外好多人吐槽BB只给100打车不够,下飞机坐air train到地铁站,坐E线,下车5分钟到宾馆,回去亦然,来回过不了20刀.扭腰在下午傍晚打车比较唑死… 宾馆出门拐弯的星巴克的鸡肉三明治不错,不腻,做早饭蛮好的.而且由于BB第一轮的中国大哥很好,让第二轮的人给我带了个lunch box,而最后hr也给我了个lunch box,导致我得到了两份lunch,一份牛肉,一份金枪鱼,还挺好吃的… 面试屋子里真没人盯着你全身看,如果不喜欢穿皮鞋的话穿黑色乔16肯定没人看得出来.
去29层看风景后是去个屋子等面试官来领人,当时还有几个同胞迷路丢了… 接待的HR姐姐让我去回去找他们… 如果你当时在场可能就知道我是谁了…
正题,没签NDA啊, 所以讲一讲,
第一轮, 中国人和一个口音很纯的华人(名字绝对是我华夏民族的名字),两人很友好,聊的很开心,level order traversal,然后是数组求最大sum的subarray.俩人一人一题,挺开心的,最后华人前辈还嘱咐第二轮给我带lunch box.
第二轮,听不太出口音的华裔面孔,像中国人,和一个美国人.
华人大哥问了我就是leetcode里那个每个listNode有一个random pointer指向任意一个list里面的node.这道题我没在leetcode上做过,先造new list, 然后用map来map相对同样index的两个node的地址,线性空间线性时间是我当时能想到的最好的了.不知道是不是市面上的最优解.
美国人问了我一个c++的问题,其实我不太确定,但我觉得应该是对的.
int* foo(){
int a=5;
return &a;
}
int main(){
int* result=foo();
std::cout<<*result<<std::endl;
}
理论上来讲输出应该是garbage,因为a的lifetime只在foo里,所以指针在,但那块mem已经被标记了,输出还是5是因为那块stack没人动过,但如果在main函数两行之间随便call一个别的那输出什么就不好说了. 可能是语言不好,感觉那个美国人一开始不是太买账,但后来应该还是讲明白了,但也可能我错了,但我现在还只是觉得是这样.因为stack无论哪里应该都是属于自己的mem space,所以就算被mark了应该还是能访问的…吧… 应该不会给seg fault. 然后华人大哥问我两个linked list做减法,就是list表示一个大数,他问了我一句你见没见过这道题,我说我见过加法的,他说好吧那算了,两题差不多.然后美国人说没事,我有道题.
我那个后悔啊,这道题很难啊.基本就是设计一个画板.我个人不太认可这类题的是,就算现实中的项目,我问你requirement你也该告诉我,问清楚需求才能做嘛,结果问什么美国大哥都说随你,我就懵了,你妹啊,我要知道你期待什么啊.感觉答的一般,给出了解法,但感觉并不出彩,空间复杂度有些高.
然后华人大哥又问了我个题,类似于(a+b)*c+(a+b)+c,去除没用的括号.说真的,应该是成题,可是不爱刷题的楼主还是没做过… 上来想用stack套,没解出来,一看时间不够了,就硬解了,用的是palindrome硬解的办法,每一点,左右展开找属于他的括号,在看外面的operator,来决定这个括号的意义.用一个额外的数组,0代表没visit这个括号,1代表visited,有意义,2代表最后可以抹掉.quadratic时间线性空间.也不出彩.需要额外数组是因为nested的括号需要知道哪对儿括号是属于这个operator的.
然后聊天,原来那个美国人是做前端的,讲了半天他做的东西,但其实总结起来就是single page application,说真的不是新鲜东西,就是你干什么都只刷新某个模块,不用重新炫整个页面,如果我没记错的话,应该是12年时很火的概念.并没有不尊重的意思,但大致让我看到BB和加州公司的区别,不追新,相对稳后大家做.. 第三轮是manager,基本是一个master机器,n个slave机器,slave机器里全是数据,没排序,找average,然后找median,丢人的是我开始一懵忘了median是排序后的中间那个了.还是,给出了解法,但磕磕绊绊,而且感觉也不是最优解.哥们倍儿年轻,居然干了15年了,而且以前住在离公司2个blocks的地方,这是曼哈顿啊……
第四轮是HR,大概就是问了问以前实习时都做了什么,学校里最喜欢的课是什么,给人介绍BB如何介绍,楼主以前在Mathworks实习,Simulink属于design automation,其实BB Terminal就是Traders的automation而已,胡扯了一大通.然后从零教会了HR啥是MVC.然后说我喜欢扭腰的style之类的.并没有你与小伙伴发生矛盾了怎么办之类的问题.
大概就是这样了,虽然是四轮,但面的如何自己最清楚,就算面完四轮相对还好,但最后肯定也是排序的要人.要不要我也随意了~ 感谢这个版面的帮助.
59.8 royalheart 发表于 2015-2-28 08:04:57
Onsite两轮游,呵呵…等收拒信…. 题完全不难
第一轮,一个东欧人和另一个拉丁裔,主要是东欧人问问题 问简历,问research,问project
1.找一个数组的所有重复数字,有多个重复的每个都输出
2.用一个范围的随机数rand()生成另一个范围的随机数,我特别不会做这种题,写了一下他说corner case不对,但是他说时间紧不让我继续写了… 记不清楚题目具体是怎么说的,貌似是16bit的数随机数是rand(),然后64bit的用rand()怎么表示,但他后来又说是16KB 和64 KB integer(?觉得不make sense啊…)估计跪这个题上了
3.Max Stack
然后感觉他非常想问我C++的问题,但是我说C++没Java熟,他就只好改问了一些Java的问题,然后问问题的时候他说B家80%用C++,估计我对C++无爱被严重BS了…
第二轮,不清楚族裔,有点意大利口音
都是设计题,说数据结构和思路就可以
1.马拉松实时名次 (他家好像特别爱考这道题,面经里看过好多次,还好在去NYC飞机上想了一下) 2.UTF-8 decoding (我其实不知道UTF-8 encoding规则,他给我解释了一下,原理很简单很好写) 问问题的时候我问工作压力怎么样,有on-call吗?他说on-call是啥?汗…然后他说极少有这种情况,除非写的东西有bug然后在不同时区的客户那边出了问题,但是他说几年里面貌似也就出现过两次吧
前天电面的,不废话了, 直接上题:
给了一个UTF-8的pattern:
1byte - 0XXX, XXXX-google 1point3acres
2byte - 110X, XXXX, 10XX,XXXX
3byte - 1110, XXXX, 10XX,XXXX, 10XX,XXXX
4byte - 1111, 0XXX, 10XX,XXXX, 10XX,XXXX, 10XX,XXXX
.....
7byte - 1111, 1110, 10XX,XXXX, 10XX,XXXX, 10XX,XXXX, ..... 10XX,XXXX
8byte - 1111, 1111, 10XX,XXXX, 10XX,XXXX, 10XX,XXXX, ..... 10XX,XXXX
然后让写一个boolean 函数:
input: byte数组
output: trye or false;
boolean isvalidUTF-8(byte[] input){
}
第二轮两个题面试官都貌似还满意 但完了就被请出了,估计还是跪在了第一轮…
不过回想一下也挺奇怪,我还没面第一轮之前就告诉我今天安排只有两轮,是怎么预测到我两轮跪的?==||| 回酒店碰到个Purdue的印度哥们,也是两轮游,他的题也不难
其实不是很想去B家,但是题不难还面跪也还是略郁闷…
B家的公司气氛文化我不是很爱,感觉各种不接地气,面试还写了要穿Business Professional的,而且感觉有些人情冷漠,纽约冬天太冷了,在南方呆久了不适应被冻成狗,感觉不适合我…
不过B家流程效率还是挺高的,电面很简单很容易拿到onsite,喜欢用C++的就不要犹豫投吧
最近连挂两家老印的电面和B家这个onsite,真是衰到家了… 求转运!!!求RP!!! 在机场收到了别家HR的联系邮件,被关上一扇门的同时打开一扇窗的说法,希望是真的~ 求好运!~~~
59.9 catinclay 发表于 2015-3-18 08:08:22
在地里得到很多有用的资讯, 刚面完来回报.很多都是地里已经有的题,但感觉还是没发挥好
第一轮 真够惨的 估计跪在这一轮
2sum Leetcode #1 数字游戏 给一个list, list中有两个数. 过程中可以一直往list中加数进去(append在最后), 但必须一直遵守三个条件: 1. list中所有数均需大于0 2. list中所有数都必须为unique 3. 新加入的数必须为已存在list中的某两数的差
要做的事情是把所有可能的过程(一直加到没办法加入新的数字为止)都给打印或是回传
ex. [30, 5], 则最新加入的数只能为25, list变为[30, 5, 25] 继续, 只能再加入20, list成为[30, 5, 25, 20], 接着就有两种选择, 可以加10(30-20) 或是15(20-5). 于是会分出两个branch [30, 5, 25, 20, 10] 跟[30, 5, 25, 20, 15], 然后再把最后一个可能补上之后变成 [30, 5, 25, 20, 10, 15]跟[30, 5, 25, 20, 15, 10], 所以就回传这两个list. 可以预见的是如果一开始的两个数大小相差很多ex[99, 1] 那最后就会回传很多种path 只写出brute-force, 我问应该有更加的解法, 面试官笑而不答我也是醉了
查语元 给定各种语言的字典, 给一篇文章, 给定一个function getWord可以取得文章中的下一个字(从头开始, 类似iterator的getNext) 问你要怎么样check他是哪一种语言(ex, English, French 等等). 给了一个一直把字放到各个字典里比对然后对每个字典投票的算法, 面试官问有没有不用把整个字典都预读到memory的解法, 完全没头绪…
第二轮 马拉松 一堆runner再一个跑道一起跑步, 上面有很多sensor, 每个sensor有sensor id, 当一个runner通过一个sensor的时候会有一个message传到中央sever, 要你设计一个实时leader board. 在一个递增之后递减的int array里查找target, 先找peak value然后切两段binary search.
第三轮 compression 给一个String要你compress, 方法如下: 如果是 aaabbccccbaddd 就回传 a3b2c4bad3 不用考虑特殊符号, 只考虑lowercase letter
红白骰子 一个大白方块, 六面漆上红色, 然后像魔术方块那样切成27等份, 问随机挑一个丢在地上, 红色面朝上的机率?
火车山洞 山洞总长1000m, 你在入口进去300m的地方, 此时听到有火车声从入口传来, 假设火车速率是你跑步速绿的两倍, 问你往哪个方向跑生存机率大些 问了一点Java memory管理的概念, Stack跟Heap
第四轮 HR身家调查
总的来说还是一次很开心的体验啦,但还是move on 求大米~
59.10 Xin_walker 发表于 2015-6-11 14:46:45
直接上题啦~(我用的c++) 电面: 1.给两个vecto of int,各表示一个整数的每一位,高位对应index = 0, 返回二者和,也用vector表示 e.g [3, 2, 1] + [4, 3, 2] = [7, 5, 3] 2.给定整数n, 判断是否palindrome 3.给定整数n,判断log2(n)是否为整数. 鍥磋鎴戜滑@1point 3 acres 4.同1,这次让求product hackerrank上敲的代码,写完第一道题面试小哥本来想让我写个main和test cases跑一下的,结果我刚敲了个int main他就说他看着OK,下一道题= = corner case各种问,但小哥不太care的样子 都随便我
onsite:
一个很nice的国人和一个中东(?)小哥 1)[无视这道题吧orz]给一个string,输出各字母出现次数by alphabetical order. follow up 问如果是c-string 传参const char 和char 有神马区别. 2)leetcode上unique path I 和 II(我上来直接写了一维的 然后面试官一直在和我讨论一维OK不..所以推荐大家写二维除非被问follow up啊TT) 3)输出一个数组最大值和第二大值, follow up找第K大值.
都是老外 1)bloomberg的terminal会根据用户选择的语言将各自窗口所要显示信息转换为对应语言,问如何存窗口的Index以及该窗口信息对应的不同语言 follow up基本沿着database的设计思路一步一步扯,就简单的scalability, single point failure神马的 最后面试官说嗯 用database就好了 这些设计database都为你做好了(好吧…楼主EE出身= =)-google 1point3acres 2)问说服务器每次都要check database来返回信息太慢肿么破,我说用cache,他问了下cache具体怎么个情况,实现的话用什么数据结构.又问如果cache的空间不够大肿么破,我说可以存访问量大的.他说嗯嗯这是他想要的那么问题来了:如果实时得到访问量是topk的股票?我给出hashMap+heap的解法后 他问我big O, 我说O(logk), 然后他问要O(1)的solution.
3.又一个很nice国人 1)一个数组仅包含0和1,in place操作使得0全在最左,1全在最右 我先说two pointers都从左往右扫,他给test case说如果输入是[10000000000]这种,会swap很多次,我就说那two pointers从两端扫,他表示OK,然后写代码 follow up c++中数组传参int , int , int &, 三种有神马区别(第三种他写一半了然后说 传引用形式你自己写一下) 2)给如下代码
char *s;
strcpy(s, "hello");
printf("%s\n", s);
问运行结果 4.HR各种聊.
感觉因为是女生所以面的不难0 0
59.11 121. Best Time to Buy and Sell Stock
https://leetcode.com/problems/best-time-to-buy-and-sell-stock
买卖只能一次. 这题其实是求max uptrend
,和max drawdown
相反.
struct Solution {
int maxProfit(vector<int>& prices) {
int mi = INT_MAX, r = 0;
for (int i = 0; i<prices.size(); ++i)
mi = min(mi, prices[i]), r = max(r, prices[i] - mi);
return r;
}
};
这题其实和最大值没关系,主要是要记录最小值.
59.12 122. Best Time to Buy and Sell Stock II
Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
Solution: Add all up trends!!
这个题没有说清楚是否可以在同一天卖出手上的股票然后再买进,因为其实doesn’t matter结果都是一样的. 这篇文章解释了其中原因: http://www.cnblogs.com/springfor/p/3877065.html .