上来随意交谈了一小会儿,开了点小玩笑,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. 【咸鱼教程】BitmapLabel位图字体使用

    引擎版本3.2.6 教程目录一 为什么要使用位图字体二 如何使用位图字体2.1 TextureMerger制作位图字体2.2 exml中使用位图字体三 Demo源码 一  为什么要使用位图字体egre ...

  2. 【咸鱼教程】TextureMerger1.6.6 二:Sprite Sheet的制作和使用

    Sprite Sheet主要用于将零碎的小图合并成一张整图.减少加载图片时http的请求次数. 1 打开TextureMerger,选择Sprite Sheet 2  添加纹理(未创建项目时,会先弹出 ...

  3. 【BZOJ3456】城市规划 多项式求逆

    [BZOJ3456]城市规划 Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得 ...

  4. thinkphp实现采集功能的三种方法!

    最近在做一些数据分析,由于上网找数据比较麻烦,所以写了一个采集网站数据的方法.具体方法如下: 方法一:QueryList 个人感觉比较好用,采集详情比较不错的选择,但是采集复杂一点的列表,不好用.具体 ...

  5. js获取文件对象

  6. 重写jquery serialize 方法

    /**取表单中的对象 *attrName:为元素的的属性名称不设置则默认为name */ $.fn.serialize = function (attrName) { var ret = {}; if ...

  7. 安装XP时BIOS的设置(ahci ide)

    和以前使用Windows XP一样,很多用户都在设法提高Windows 7的系统运行速速,比较常见的方法大多是对系统服务进行优化,去掉一些可有可无的系统服务,还有就是优化资源管理器菜单等.除此之外,还 ...

  8. The third column indicates whether subclasses of the class declared outside this package have access to the member.;

    总结1.modifier 改性剂 修饰符 修饰语 调节器access modifier 访问修饰符 存取权限 存取修饰词 存取修饰字官网“can”Access level modifiers dete ...

  9. CGI servlet Applet Scriptlet Scriptlet JSP data layer(数据层),business layer(业务层), presentation layer(表现层)

    https://en.wikipedia.org/wiki/Common_Gateway_Interface In computing, Common Gateway Interface (CGI) ...

  10. arcpy调试

    arcpy调试过程中, 在代码中加入一些输出语句来判断代码运行流程, 使用  arcpy.AddMessage(“”)    而不要使用 print    如下两图所示,print并未输出~~