#微软笔试# #微软# #秋招# #笔试# #算法#
今日份(8-19)的微软笔试:
第一题:直接求解+二分优化。数据量N是10^5,数据大小M是10^9,从左往右直接求解,再使用二分优化一下,复杂度O(lg M)。当然,最大的问题在于无法证明这种做法是最优解,但是快就完事了!


第二题:贪心+堆优化。统计所有数出现的次数,对于任意两个数,当他们的数量都大于2、或者值都为1时,值更大的优先级更高;否则数量大于2的优先级更高。每次选择当前优先级最高的数,用于从两端向内组成回文,直至优先级最高的数无法再用于组成回文。
第三题:DFS。每次 DFS 返回一个 cost 和人数,当前点的 cost 、人数分别为由深层DFS返回的 cost 之和、人数之和,在当前非0的点返回前再对 cost 加上 ceil(当前人数/5)。
今日份(8-19)的微软笔试:
第一题:直接求解+二分优化。数据量N是10^5,数据大小M是10^9,从左往右直接求解,再使用二分优化一下,复杂度O(lg M)。当然,最大的问题在于无法证明这种做法是最优解,但是快就完事了!
第二题:贪心+堆优化。统计所有数出现的次数,对于任意两个数,当他们的数量都大于2、或者值都为1时,值更大的优先级更高;否则数量大于2的优先级更高。每次选择当前优先级最高的数,用于从两端向内组成回文,直至优先级最高的数无法再用于组成回文。
第三题:DFS。每次 DFS 返回一个 cost 和人数,当前点的 cost 、人数分别为由深层DFS返回的 cost 之和、人数之和,在当前非0的点返回前再对 cost 加上 ceil(当前人数/5)。
全部评论
第一题,如果不优化,应该是NlogN。
如果优化从左向右的判断过程:二分寻找大于当前最远可以达到的点,在W为1的时候这个步骤退化为O(N),其他时候的时间复杂度不会分析了orz。。。
第二题应该不需要用堆,因为就0-9十个数字,统计十个数字出现的频率,然后逐个数字遍历即可。贪心的把大的数字放在字符串两侧。时间复杂度是O(N)
借口问一下,微软的笔试只需要考一场就可以了吗?
😂完蛋,我写的ceil(x/4)
朋友可以麻烦贴一个题目咩,这周没做😂
附上代码:https://www.nowcoder.com/discuss/1021679 
最后一题麻烦给个代码可以吗
最后一题没想出来😥前两题虽然测试用例都过了但是不知道会不会有一些边界条件没考虑到
啥时候可以贴个代码了
相关推荐
03-25 17:41
长春电子科技学院 前端工程师
smile丶snow:1.简历尽量一页,比如教育经历那里,全日制,计算机学院这些可以去掉没啥用好浪费空间。
熟悉三件套就没必要写了吧。js基本上是这样写
* JavaScript核心:深入理解 JS 运行机制(事件循环 Event Loop、微任务/宏任务),熟练掌握 Promise/Async 异步编程 模型。
熟悉可以改成熟练掌握。组件库写一个ant感觉就行,多写了浪费空间。
旅游项目是不是jonas的natours啊,我之前简历也有这个。我之前是这样写的
全栈思维: 熟悉 Node.js/Express 后端架构,掌握 MongoDB 数据库设计与聚合查询
工程化我觉得还是少些吧,不写就问的少,如果你真的了解的话可以写。
1.实习的话推荐大厂官网和aoob上面投,我自己有写一个校招网站的小网站可以直达~github主页上面有,顺便求个关注(
2.大三下一般课程比较少了吧,如果学校比较严的话可以多沉淀一会,如果不太严可以请dai课然后去实习,尽量找个近一些的就行。暑期实习不是暑假才实习哦,基本是上3月底4月初发offer就可以过去了,然后大概暑假的时候走转正流程答辩。
3.大厂算法题+js手写体。hot100+常见的比如数组转树,Promise.all,deepClone,之类 js手写都不难其实。算法看自己能力吧,我其实算法能力也不行。
4.自己平时没有用AI Coding吗?自己想一下怎么让AI帮你更好的写代码~比如Skill的诞生,OpenSpec的诞生,不都是我们想让AI更好帮我们写代码吗。 点赞 评论 收藏
分享