小红书C++ 一面(技术面50min)
Posted MangataTS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小红书C++ 一面(技术面50min)相关的知识,希望对你有一定的参考价值。
小红书C++ 一面(技术面、50min)
面试官问
-
自我介绍
-
你简历上的项目比较多样化,为什么会去做这些项目呢
-
你觉得你以后会想去做什么呢
-
挑一个你觉得难度最大的项目,然后介绍一下,balabala
-
项目问题balabala
-
说一说项目中遇到的一些困难吗
-
你写这个项目的主要原因是什么
-
你刚才提到了
CDN
,那么CDN
为什么能加速,其原理是什么呢 -
C++
的编译从源码到可执行文件中间的步骤有哪些呢? -
你了解G++在编译的时候的
o(1)
、O(2)
、O(3)
这些优化有什么区别吗 -
有什么方法可以操作操作系统的堆的空间呢
-
malloc
、free
和new
、delete
有什么区别吗 -
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++ 一面(技术面50min)的主要内容,如果未能解决你的问题,请参考以下文章