小米C++研发岗,贡献面经

就记住了这些,仅供大家参考
1.协程了解过么?

协程是更轻量级的线程。用于解决线程间切换和进程间切换的通病(对内核开销过大),协程各个状态(阻塞、运行)的切换是由程序控制,而不是内核控制,减少了开销。

功能特点:通过应用层程序,记录上下文栈区,实现在程序执行过程中的跳跃执行。由此可以选择不阻塞的部分执行提升运行效率。


2.写代码,链表的插入与删除的题目。

从单向链表中删除指定值的节点

输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。

链表结点定义如下:
struct ListNode
{
    int  m_nKey;
    ListNode* m_pNext;
};

详细描述:

本题为考察链表的插入和删除知识。链表的值不能重复。构造过程,例如

1 <- 2

3 <- 2

5 <- 1

4 <- 5

7 <- 2

最后的链表的顺序为 2 7 3 1 5 4

删除 结点 2

则结果为 7 3 1 5 4

输入描述

1 输入链表结点个数
2 输入头结点的值
3 按照格式插入各个结点
4 输入要删除的结点的值

输出描述

输出删除结点后的序列
以下是我的渣渣代码,有兴趣可看,没兴趣就自己写写当练手了:
#include <iostream>
using namespace std;
struct ListNode
{
    int  m_nKey;
    ListNode* m_pNext;
};
ListNode* insertlist(ListNode *head, int insertnum, int find)
{
    ListNode *headtemp = head;
    while (head != NULL)
    {
         if (head->m_nKey == find)
         {
             ListNode *listnode = new ListNode;
             listnode->m_nKey = insertnum;
             listnode->m_pNext = head->m_pNext;
             head->m_pNext = listnode;
             break;
         }
         head = head->m_pNext;
    }
    return headtemp;
}

void displaylist(ListNode *head)
{
    while (head != NULL)
    {
         cout << head->m_nKey << " ";
         head = head->m_pNext;
    }
    cout << endl;
}

ListNode* insertlist(ListNode *head, int del)
{
    ListNode *headtemp = head;
    if (headtemp->m_nKey == del)
    {
         headtemp = headtemp->m_pNext;
    }
    ListNode *pre = head;
    while (head != NULL)
    {
         if (head->m_nKey == del)
         {
             pre->m_pNext = head->m_pNext;
             delete head;
             break;
         }
         pre = head;
         head = head->m_pNext;
    }
    return headtemp;
}

int main()
{
    int len;
    cin >> len;
    int temp;
    cin >> temp;
    int lentemp = len - 1;
    ListNode *head = new ListNode;
    head->m_nKey = temp;
    head->m_pNext = NULL;
    while (lentemp--)
    {
         int first, second;
         cin >> first >> second;
         head = insertlist(head, first, second);
    }
    int del;
    cin >> del;
    head = insertlist(head, del);
    displaylist(head);
    return 0;
}



#小米##面经##C++工程师##校招#
全部评论
不错哦!下午小米二面!沾沾喜气
点赞 回复 分享
发布于 2019-09-19 14:51
沾沾喜气
点赞 回复 分享
发布于 2019-09-19 15:13

相关推荐

10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
6 37 评论
分享
牛客网
牛客企业服务