注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
OP微软在职不到一年,因为分配的组实在不满意,毅然决定跳槽。面了Google(onsite挂),还有pinterest(offer并且接受)。现在决定发帖回报地里。先说Google:
首先Google说来也巧,在我想找朋友refer的时候google recruiter主动找了我。楼主上大学的时候面过Google,但是死在了phone interview,被问到implement malloc & free。。。
首先是phone interview,在google doc上写,一共问了三道题,都是非常简单的题,其中两到LC原题。
1. Increment a number that is represented by an array of its digits.(LC 66, Plus one)- void incrementArray(vector<int>& nums) {
- int carry = 1;
- int size = nums.size();
- for(int i = size - 1; i >= 0; --i) {
- if(nums[i] + carry != 10) {
- nums[i] += carry;
- carry = 0;
- break;
- }
- carry = 1;
- nums[i] = 0;
- }
- if(carry == 1) {
- nums.insert(nums.begin()\n 1);
- }
- }
复制代码 2. Normalize a URL by handling .. segments. For example: /a/b/../c.txt => /a/c.txt (LC 71, simplify path)- string normalizeURL(const string& url) {
- deque<string> tokenBuffer;
- vector<string> tokens = url.toknize('/');
- int size = tokens.size();
- for(int i = 0; i < size; ++i) {
- if(tokens[i] != ..) {
- tokenBuffer.push_back(tokens[i]);
- } else {
- if(tokenBuffer.empty()) {
- throw exception(Invalid Operation);
- } else {
- tokenBuffer.pop_back();
- }
- }
- }
- string result;
- while(!tokenBuffer.empty()) {
- result += / + tokenBuffer.front();
- tokenBuffer.pop_front();
- }
- return result;
- }
复制代码 3. Given a list of numbers\n output a list of their relative ranks. For example: [10 3 8 9 4] => [1 5 3 2 4]- vector<int> computeRanks(vector<int>& nums) {
- int size = nums.size();
- vector<int> result(size\n 0);
- unordered_map<int\n vector<int>> indexLookup;
- unordered_map<int\n int> rankLookup;
- for(int i = 0; i < size; ++i) {
- indexLookup[nums[i]].push_back(i);
- }
- sort(nums.begin()\n nums.end());
- int index = 0;
- while(index < size) {
- int rank = size - index;
- rankLookup[nums[index]] = rank;
- while(index + 1 < size && nums[index] == nums[index + 1]) {
- ++index;
- }
- }
- for(auto& kvp: indexLookup) {
- int val = kvp.frist;
- vector<int>& indices = kvp.second;
- for(auto index: indices) {
- result[index] = rankLookup[val];
- }
- }
- return result;
- }
复制代码 上面楼主的code直接从google doc上粘过来的,一些引号,逗号,空格还有indentation被搞砸了,实在懒得改了,也不是难题,大家凑合吧。
过了几天通知了onsite interview,一共五轮,被不负责俄罗斯哥和傻逼阿三姐坑了,也就顺理成章的挂了。
第一轮,不负责俄罗斯哥,问的是最大假期机票问题。楼主先说了可以brute force穷举所有可行的行程,找最大,然后说可以用dp优化。然后楼主说了从第一天开始往最后一天iterate结果这entation:
一个网站的hit count。需要输出15分钟内的hit count。本质是circular buffer。需要考虑system lag的情况。Follow up是如何优化。答案是可以让发送hit count的那一端先aggregate所有结果,然后发个histogram。这样可以减少hit counter的负荷。
楼主的跳槽之路算是结束了。实在是太费精力了。希望pinterst不坑可以让我好好学东西,发光发热。
相信大家字里行间可以看出楼主对印度人的不喜欢。原因就是印度人坑了楼主太多次。楼主从大学到跳槽,基本上有印度人的面试都被黑(Google, twitter)。所以实在是厌倦了。希望我们中国人可以团结点,不知道为啥中国人总喜欢自己坑自己。。。
我觉得CS找工作,面试官的权利实在是太大了。一个Phone interview,你就完全可以一手遮天。就算jeff dean来,你要想黑他也能黑。
所以我觉得国人面国人,起码要公平公正。之前聊天有人想很变态的题,自己都他妈不会做,然后说要当面试题,楼主听了很气愤。
最后祝福大家可以拿到自己想要的Offer,面试遇到正常的面试官。
|