2022春季暑期实习-微软一面

投递时间

2022.2.9

第一次面试时间

2022.3.7

面试过程

首先自我介绍

提前准备,照着说

介绍自己的项目

我先说了一个自己作为负责人的实验室校企合作项目,讲解了项目内容,做了啥?然后开始反问细节,问到了皮尔逊相关系数,大脑短路,想了半天跟面试官说忘了。之后又问了我在建立上写的开源小项目,本科时候做的,因为star数量多,就写了上去,说实话没有啥技术量,然后也没有太说清楚,就自己直接开始说提前准备好的挑战来拖时长。之后进入编程阶段。

alt 协方差和标准差的商

编程

共享屏幕,均在本地IDE上写,我好久没在本地写过C++了,就直接打开VS Code,打开了记事本开始写。。。说实话都忘了怎么输入了,最后就没有编译,直接对着代码讲思路。。。

第一题

快速排序,前几天看过,但没背,就现场推,然后就推出了车祸现场。。。下面整理真正的快排算法。

int partition(int A[], int p, int r){
    int x = A[r], i = p-1;
    for(int j=p; j<r; j++){
        if(A[j] <= x){
            i++;
            int tmp = A[j];
            A[j] = A[i];
            A[i] = tmp;
        }
    }
    int tmp = A[r];
    A[r] = A[i+1];
    A[i+1] = tmp;
    return i+1;
}

void quickSort(int A[], int p, int r){
    if(p < r){
        int q = partition(A, p, r);
        quickSort(A, p, q-1);
        quickSort(A, q+1, r);
    }
}
第二题

面试官觉得写得有问题,直接来第二道,是个链表题,题目大意是给两个链表,每个链表均存着一个数字,逆序组成两个数字,这两个数字相加得到第三个数字也存在一个链表里面,输出第三个链表。(leetcode原题) 下方链接和代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* head1 = l1;
        ListNode* head2 = l2;
        ListNode* node1 = new ListNode(0);
        ListNode* head = node1;
        int x = 0, y = 0;
        while(head1!=nullptr || head2!=nullptr){
            if(head1 == nullptr){
                x = (head2->val+y)%10;
                y = (head2->val+y)/10;
                // cout << x << endl;
                ListNode* node2 = new ListNode(x);
                node1->next = node2;
                head2 = head2->next;
            }
            else if(head2 == nullptr){
                x = (head1->val+y)%10;
                y = (head1->val+y)/10;
                // cout << x << endl;
                ListNode* node2 = new ListNode(x);
                node1->next = node2;
                head1 = head1->next;
            }
            else{
                x = (head1->val+head2->val+y)%10;
                y = (head1->val+head2->val+y)/10;
                // cout << x << endl;
                ListNode* node2 = new ListNode(x);
                node1->next = node2;
                head1 = head1->next;
                head2 = head2->next;
            }
            node1 = node1->next;
        }
        if(y > 0){
            ListNode* node2 = new ListNode(y);
            node1->next = node2;
        }
        return head->next;
    }
};
最后是反问环节

上面编完就大概进行了一个小时,面试官说时间不早了,你问我几个问题吧,我问 您对我今天表现的评价,对我关于建议、面试有什么建议没有。面试官说评价不方便说,表现挺好的(好人卡,hhh),没有什么建议。然后我就问面试官什么部分,地点在哪,微软生活是不是很好(拉家常),面试官就介绍了一下自己的部门,然后blabla,结束了。。。

全部评论
过了吗?
点赞 回复 分享
发布于 2022-03-16 10:03

相关推荐

牛客20485985...:抱抱😘,首先你还有春招,然后就算这时候没上岸也没关系,大部分人都是这样,毕业了再找也成,最后工作只是生活的一小部分,找到工作也不是一个必须的事情。不要气馁不要焦虑你只是陷入了短暂的低谷,你也一直有退路
点赞 评论 收藏
分享
饼子吃到撑:学院本是这样的,找工作拼运气,你技术再好人家筛选学历照样沉入海底,海投就行了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务