[Intern]微软暑期Explore Program面试


背景

岗位名称:Software Engineer - Explore Program(官方介绍为针对非应届低年级学生的项目,比如今年就是2023.9之后毕业,应该不是培养转正那种岗位类型)
时间线:1.18内推 ——> 1.21笔试——>3.14面试通知——>3.21 IC面——>3.23 Leader面

更新:
3.29 网站状态更新为Completed
3.30 收到Data Collection邮件
4.2 Offer邮件


一、投递

ms需要中英文简历,注意简历不要写一些不会的东西上去,因为面试很大部分围绕简历上的项目,比如我的面试中基本没有被提问基础知识(OS, Network, 语言…)


二、笔试

好像三个题,第三个图没做出来,我好废物…但这进面是个玄学,投递早最要紧
开始wait…就当没投过好了,不要问,没结果,等一个多月心很累


三、面试

EP的面试时间很短,每次30min,两个面试官都是准时结束(甚至提前几分钟让你反问那种

1. IC面

第一次面试软件teams不好用,只能临时找了个腾讯文档写,前后耽误了五分钟。虽然面试官表示理解,但还是不太好…

Part 1: 项目

包括项目做什么,遇到的问题,实现思路……反正一定不要写一些自己不清楚的放在介绍里。
比如我的简历中一个项目介绍写了结合模拟退火,但其实最后并没使用这条解决路线,导致说不清楚模拟退火的思路和在项目中的使用(是美团面试的经历…

Part 2: 算法题

Q: 找到最长非连续递增子数组
A: dp[]+pre[],然后逆着pre找
时间不够所以没写完,但是面试官应该觉得我会,问我是不是经常刷算法题…其实这题写起来还是有点麻烦,毕竟要找子数组本身而不是问最大长度
打扰了,我是个傻子,这不是遍历一遍就完事儿了吗,遇到递减就更新为0,要不然就+1,记录全局最大

Part 3: 反问

没问,又对teams没提前调试好向面试官抱歉…时间到


2. Leader面

说是Leader面但其实是和IC面一样…也是项目+代码+反问

Part 1: 项目

不做赘述,和一面的模式基本差不多,问了研究生阶段的研究内容

Part 2: 代码

吸取教训调好teams,共享写代码

  1. BST的性质(左侧小于等于,右侧大于;中序遍历有序),查找复杂度(O(log2n))
  2. BST搜索目标值所在节点(递归写了一个)
  3. BST搜索目标值的最接近的
    (1) 先说中序遍历(可以提前结束,但还是最差还是O(n))
    (2) 最接近的数值一定在查找路径上…如果hit直接返回,否则在树上对target进行查找并更新nearestVal
    p.s. 一是全局变量虽然在leetcode中好用,但是工程中要考虑是不是多处调用等问题;二是这代码其实不需要运行,思路在注解中写清楚
// int nearestVal = INT_MAX;	// 面试官提醒:别用全局变量,否则不能多处调用 ⇒ 引用传递

int searchNearest(TreeNode* root, int target, int& nearestVal){
	if(root==NULL)
		return -1;
	if(root->val == target)
		return root->val;
	// 判断,更新最近值
	if(abs(root->val-target) < abs(nearestVal - target)){
		nearestVal = root->val;
	}
	// 递归左子树
	if(root->val >= target){
		return searchNearest(root->left, target);
	}
	// 递归右子树
	else {
		return searchNearest(root->right, target);
	}
	return nearestVal;
}
Part 3: 反问

Q: 面试官对面试的建议
A: 项目介绍有点沉闷,抓不住重点(因为只求不被难住就好,但这点确实是沟通能力的体现,非常有道理,几次面试大概知道了会被问到哪些,回头好好整理准备


总结

微软面试就是那种…不好不坏的体验,30分钟的时长,还有十分钟写代码,基本考察不到知识储备,而是重点考察解决问题和解释思路的能力,要组织好语言,不求最优解,要体现思考,maybe…

最后,Wish me good luck.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值