上来随意交谈了一小会儿,开了点小玩笑,chat了一些关于他们recruter行程的话题,缓和了一下气氛。

进入正题,问了做的research的方向,我说是DLT,然后大概给他讲解了一下具体是什么, 跟平行计算很像,举了一个例子:矩阵乘法如何划分使并行效率最高。他表示理解。然后他又问我有没有过end to end的experience, front end back end那种, 我跟他简单介绍了一个简历上的social database设计的project,简单介绍了我们front end和back end的功能。然后他又问我最chanllenging的coding experience,我说是我第一个NP project, 跟他大概介绍了一下,他问大概多少行代码。

他说通不通过主要取决于当场写算法。然后就开始出第一道题

1. Anagram问题,如何判断两个String是不是Anagram,他先让我讲思路。我说一般两种做法,一是转换为char array, sorting, 看sort了之后的char array是不是一样的。另外一种做法是用hashMap, 把第一个String的元素依次输入hashMap, 再把另一个String的元素依次输入另一个HashMap, 然后比对这两个HashMap是不是一样。他问我各自的时间复杂度是多少,我说分别是O(NlongN)和O(N), 并解释了原因。他然后让我用HashMap那种方法,问我to save trouble,能不能用其他的数据结构而不用HashMap. 我说用int array, 假设字符是ASCII码,建立一个256 size的array, 对每一个字符,到int array的相应的位置去+1,对第二个String再来一次扫描,到相应位置-1, 最后看是不是全零array. 这样是O(2N),他问能不能O(N),我说可以把+1-1的操作放到一次scan里面完成。他点点头。

2. 然后他把白板擦了出第二道题。一个M*N grid, 一个人从左上去右下,问有多少种路径。我跟他说这是一道DP的题,建立一个M*N矩阵,对每一个entry,表示从start到当前位置有多少条路径. matrix[M-1][N-1]为所求。matrix[0][0] = 1. 递推式是 matrix[x][y] = matrix[x-1][y] +matri[x][y-1]. 然后还要考虑一下corner case, 比如matrix[0][x]. 他让我拿4*4矩阵推导一下,我推导了,得到matrix[3][3] = 20. 他说OK

3. 前两道题都感觉还可以,这道题就感觉比较难了。酒瓶问题。第一行1个,第二行2个,3行3个....,每个酒瓶承1加仑的酒,超过就均匀溢出给左右两个child酒瓶。问如果我有C加仑的酒,第N个酒瓶有多少酒。我推导了一下,也没有拿出太好的方案,他便给了一个提示,找parent的index和child index的关系。 我说假设N在第x+1 row, 如何找x, 就是比对N在哪个x(x+1)/2 和(x+1)(x+2)/2之间,找到了x, 那N的parent的index是N-x-1以及N-x。这是step one. 讲到这里没时间了,也讲的比较混乱。 step2没做,现在想想, 如果假设N-x-1为P1, N-x为P2,应该是

f(N) = f(P1)>1? (f(P1) -1) / 2 : 0 + f(P2)>1? (f(P2) - 1) / 2 : 0, 不考虑cornor case的情况。base case是f(1) = C; 最后return f(N)>1? 1 : f(N)

Microsoft Interview第一轮的更多相关文章

  1. Cracking the coding interview 第一章问题及解答

    Cracking the coding interview 第一章问题及解答 不管是不是要挪地方,面试题具有很好的联系代码总用,参加新工作的半年里,做的大多是探索性的工作,反而代码写得少了,不高兴,最 ...

  2. 上海市2019年公务员录用考试第一轮首批面试名单(B类)

    上海市2019年公务员录用考试第一轮首批面试名单(B类) 2019-03-12 设置字体:大 中 小 职位序号 注册编号 职位序号 注册编号 职位序号 注册编号 职位序号 注册编号 1910565 5 ...

  3. 上海市2019年公务员录用考试第一轮首批面试名单(A类)

    上海市2019年公务员录用考试第一轮首批面试名单(A类) 注册编号 总成绩 注册编号 总成绩 注册编号 总成绩 注册编号 总成绩 4016574 127.4 5112479 145.9 5125732 ...

  4. 玩下软工项目,第一轮--全局Context的获取,SQLite的建立与增删改查,读取用户通话记录信息

    项目的Github地址:https://github.com/ggrcwxh/LastTime 采用基于git的多人协作开发模式 软件采用mvc设计模式,前端这么艺术的事我不太懂,交给斌豪同学去头疼了 ...

  5. Postmortem Report 第一轮迭代事后分析报告

    一.设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件<BlueZ>是一款全新动作类塔防游戏.与市面上已经存在的塔防游戏不同 ...

  6. SDOI2017第一轮

    本蒟蒻表示终于$AC$了$SDOI2017\text{第一轮}$! 兴奋! 附上各个题的题解: $DAT1$: $T1$: BZOJ4816: [Sdoi2017]数字表格 $T2$: BZOJ481 ...

  7. 史上最全的CSP-J/S 第一轮知识点

    CSP-J/S 第一轮知识点选讲 \(NOIP\)(全国青少年信息学奥林匹克竞赛)于2019年取消.取而代之的是由\(CCF\)推出的非专业级软件能力认证,也就是现在的\(CSP-J/S\).作为一名 ...

  8. it's over | 2019 CSP-S 第一轮认证

    不知道自己有没有凉,毕竟我们省这么弱(据说有的省80都悬... 其实这几天对初赛基本没什么感觉,可能是没给自己多大压力吧,倒是班上的一群同学似乎比我们还着急,我们的数学课代表兼数竞大佬特意给我画了吉祥 ...

  9. [转帖]中兴GoldenDB数据库开始了第一轮中信银行核心业务系统迁移落地

    中兴GoldenDB数据库开始了第一轮中信银行核心业务系统迁移落地 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https:// ...

随机推荐

  1. sencha touch 在线实战培训 第一期 第七节

    2014.1.13晚上8点过一点开的课 本期培训一共八节,前三堂免费,后面的课程需要付费才可以观看. 本节内容:             非结构化数据传输 通过js调取phonegap实现图片采集.上 ...

  2. C# 创建txt文本

    1.创建txt文本 /// <summary> /// log日志,txt的 /// </summary> /// <param name="Log1" ...

  3. File类使用

    简介 File类的实例代表了一个文件或者一个目录,通过API可以获取这个对象的相关信息. File类代表的文件或者目录可以真实存在,也可以是不存在的,可以使用File.exists()来判断. 在Wi ...

  4. Packetbeat协议扩展开发教程(1)

    Packetbeat ( https://www.elastic.co/products/beats/packetbeat )是一个开源的网络抓包与分析框架,内置了很多常见的协议解析,如HTPP.My ...

  5. Elasticsearch 索引、更新、删除文档

    一.Elasticsearch 索引(新建)一个文档的命令: curl XPUT ' http://localhost:9200/test_es_order_index/test_es_order_t ...

  6. codeforces#518 Div2 ABCDE

    A---Birthday http://codeforces.com/contest/1068/problem/A 题意: 有n种硬币,m个人.m个人要给Ivan送硬币,每个人送的硬币都要互不相同但数 ...

  7. BAT等大厂已开源的70个实用工具盘点(附下载地址)

    前面的一篇文章<微软.谷歌.亚马逊.Facebook等硅谷大厂91个开源软件盘点(附下载地址)>列举了国外8个互联网公司(包括微软.Google.亚马逊.IBM.Facebook.Twit ...

  8. Buffer和cahce的区别

    什么是Cache? 什么是Buffer? 二者的区别是什么? http://wenda.tianya.cn/wenda/thread?tid=595a1d68b3009fed Buffer和Cache ...

  9. Python的浅拷贝与深拷贝

    定义: =号浅拷贝:在Python中对象的赋值其实就是对象的引用.copy了之后两个仍然是同一个东西.那么他们内部的元素自然也是一样的,对其中一个进行修改,另一个也会跟着变> copy()浅拷贝 ...

  10. 【Python算法】遍历(Traversal)、深度优先(DFS)、广度优先(BFS)

    图结构: 非常强大的结构化思维(或数学)模型.如果您能用图的处理方式来规范化某个问题,即使这个问题本身看上去并不像个图问题,也能使您离解决问题更进一步. 在众多图算法中,我们常会用到一种非常实用的思维 ...