2022微软暑期实习C+AI上海三面凉经
2022年2月25日13点-13点45
一、英语自我介绍
二、针对简历内容提问
三、算法题
面试官说手写快排(我一听还有这种好事?),后面来了一句不能用递归(直接痛苦面具)
说实话,一下子懵了。因为平时写快排都是用递归,非递归真的没有考虑过,想应该用栈来模拟系统栈调用递归的过程,但面试时实在没有头绪
最后写了一个递归快排,也没能改成非递归
互相折磨后,面试官说这个会做就会做了,不会就不会了,我们聊点其他的吧(距离折磨结束还有15分钟)后面的聊天也无心恋战了,凉透
晚上搜了一下,发现有位老哥面试腾讯时,也是leader面,遇到了和我相同的问题懵了,程序员的悲或许是相通的吧,哈哈
class Solution {
public static void main(String[] args) {
int[] nums=new int[]{9,1,8,2,7,3};
Solution.stackQuickSort(nums,0, nums.length-1);
for (int num:nums){
System.out.println(num);
}
}
public static void stackQuickSort(int[] nums,int left,int right){
Stack<Integer> stack=new Stack<>();
if (left<right){
stack.push(right);
stack.push(left);
}
while (!stack.isEmpty()){
int l=stack.pop();
int r=stack.pop();
int index=quickSort(nums,l,r);
if (l<index-1){
stack.push(index-1);
stack.push(l);
}
if (r>index+1){
stack.push(r);
stack.push(index+1);
}
}
}
public static int quickSort(int[] nums,int left,int right){
int center=nums[left];
int i=left;
int j=right;
while (i<j){
while (i<j&&nums[j]>=center)j--;
while (i<j&&nums[i]<=center)i++;
int temp=nums[j];
nums[j]=nums[i];
nums[i]=temp;
}
nums[left]=nums[i];
nums[i]=center;
return i;
}
} 平心而论,微软的这次终面难度确实不高,奈何自己的基础实在薄弱 微软是我面的第一家公司,从简历投递,到笔试,到三面,也算是走了个完整的流程,离终点就差一口气,遗憾是肯定的,主要还是自己能力不行,怪不得谁
西班牙队从头再来吧!难道向上攀爬的那条路,不是比站在顶峰更让人热血澎湃吗?——贺炜
#微软##面经##实习#