当前位置: 首页 > 面试经验 >

小红书C++ 一面(技术面、50min)

优质
小牛编辑
150浏览
2023-03-28

小红书C++ 一面(技术面、50min)

小红书C++ 一面(技术面、50min)

面试官问

  • 自我介绍

  • 你简历上的项目比较多样化,为什么会去做这些项目呢

  • 你觉得你以后会想去做什么呢

  • 挑一个你觉得难度最大的项目,然后介绍一下,balabala

  • 项目问题balabala

  • 说一说项目中遇到的一些困难吗

  • 你写这个项目的主要原因是什么

  • 你刚才提到了CDN,那么CDN为什么能加速,其原理是什么呢

  • C++的编译从源码到可执行文件中间的步骤有哪些呢?

  • 你了解G++在编译的时候的o(1)O(2)O(3)这些优化有什么区别吗

  • 有什么方法可以操作操作系统的堆的空间呢

  • mallocfreenewdelete有什么区别吗

  • malloc的时候操作系统会发生什么事情呢

  • malloc是怎么做到的呢,简单说一下原理呢

  • 你说一下进程跟线程的异同

  • 进程切换的的过程会发生什么事情呢,比如说一个核在一个时间段只能跑一个进程,那么进程在切换的时候会发生什么呢

  • 进程间通讯的方法有哪些呢

  • 共享内存是怎么做的呢,可以讲一下他的原理吗

  • 除了mutex可以实现进程间同步,还有什么可以实现进程间同步呢

  • C++11的标准多了哪些东西呢

  • 扔给我一道编程题:

思路:我们不需要关心染色了那些行哪些列,我们只需要关心染色的行数和列数即可,然后就是两个组合数的乘积

#include <bits/stdc++.h>
using namespace std;

#define ll long long

ll C(int n,int m) {
    int ans = 1;

    for(int i = 1;i <= m; ++i) {
        ans *= (n-i+1);
        ans /= i;
    }

    return ans;
}


int main()
{
    ll n,k;
    cin>>n>>k;
    ll ans = 0;
    for(int i = 0;i <= n; ++i) {
        for(int j = 0;j <= n; ++j) {
            ll cnt = i * n + j * n - i * j;
            if(cnt == k) {
                ll line = C(n,i);
                ll row = C(n,j);
                ans += line * row;
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

问面试官

  • 我想问一下我投的这个智能分发的这个岗位大概是做什么的呢,偏向算法还是说偏向应用呢?
    答:(简单回答)两方面都有涉猎
#后面的秋招会越来越卷吗##小红书##面试复盘##C/C++##2023秋招#
 类似资料: