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

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小红书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++ 一面(技术面50min)的主要内容,如果未能解决你的问题,请参考以下文章

深信服C++ 一面(技术面70minoffer)

深信服C++ 一面(技术面70minoffer)

海能达C++ 一面(技术面20min)

海能达C++ 一面(技术面20min)

迈普通信C++ 一面(技术面30min)

中科创达C++ 一面(技术面24min)