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


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

    面试官问

    • 自我介绍

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

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

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

    • 项目问题balabala

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

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

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

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

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

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

    • mallocfreenewdelete有什么区别吗

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

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

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

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

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

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

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

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

    • 扔给我一道编程题:

    在这里插入图片描述

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

    #include 
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    问面试官

    • 我想问一下我投的这个智能分发的这个岗位大概是做什么的呢,偏向算法还是说偏向应用呢?
      答:(简单回答)两方面都有涉猎
  • 相关阅读:
    数据库的三个范式
    【算法-数组3】螺旋数组(一入循环深似海啊!)
    python 随机生成emoji表情
    信息系统项目管理师必背核心考点(二十四)WBS分解的原则
    GAT学习
    论软件的可靠性设计
    DirectX3D 正交投影学习记录
    Mysql批量插入大量数据的方法
    STM32F40X之时钟树
    Pyscript,使用Python编写前端脚本
  • 原文地址:https://blog.csdn.net/m0_46201544/article/details/127453220