个人秋招面经汇总
TPLINK 提前批 测评
- 10道技术选择,3道解答,2道编程
- 判断是否是Ipv4地址,判断是否是回文链表
- 10道常识推断,10道数据分析,10道图形推断
TPLINK 提前批 软件开发工程师 一面
面试很快,20分钟,无反问环节,我面完我看见下一个人马上腾讯会议了
- 自我介绍
- 本科,研究生成绩,是否是保研的,有无论文和专利
- 介绍自己的一个项目,遇到了什么困难,当时是怎么解决的
- C++中static的作用,C语言中static的作用
- C++的多态请介绍一下
- Mysql的ACID请讲一下它们的定义
- mysql的隔离级别请详细说一下
- mysql的引擎怎么实现隔离的?(这个直接不会
- redis的过期删除与内存淘汰
- 说一下堆排序怎么实现的
TPLINK 提前批 软件开发工程师 二面
面试了快35分钟,共享屏幕手撕
- 自我介绍
- 介绍一下自己的项目
- HTTP和HTTPS区别
- 线程同步的方法
- TCP三次握手,四次挥手
- 了解C++11么,我说了智能指针(下面就让我手撕实现
- 手撕shared_ptr
- 手撕C语言实现虚函数功能
TPLINK 提前批 软件开发工程师 三面
面试20分钟
- 自我介绍
- 是否保研,考研排名,本科成绩,研究生成绩
- 研究生实验室项目
- HTTPS客户端项目
- 反问环节
TPLINK 联洲提前批 测评
- 10道技术选择,4道解答,2道编程技术选择有些java题目解答题目:数据库ACID, MVC模式,RESTful风格API,响应式交互设计
- 整数反转,最长有效括号数量
- 10道常识推断,10道数据分析,10道图形推断
TPLINK 联洲提前批 一面
35分钟
- 自我介绍
- 本科,研究生成绩排名,是否是保研的,考研成绩,有无论文和专利
- https客户端项目
- https和http区别,https握手的过程
- tcp为什么是三次握手,两次握手服务器端什么情况
- redis项目服务器怎么实现的,集群怎么做的
- 如果新增一个redis服务器节点,什么情况
- io多路复用
- 水平触发和边缘触发
TPLINK 联洲提前批 二面(终面)
20分钟,聊天为主
- 自我介绍
- 本科成绩,有没有参与过竞赛,有获得过什么奖学金么
- 依次根据简历问各个经历,项目情况
- 研究生方向,毕设方向,目前毕设完成情况
- 反问环节
TPLINK 联洲提前批 三面(加面)
- 自我介绍
- 本科成绩询问,排名,数学成绩为什么这么差
- 实验室有参与过什么项目
- HTTPS客户端怎么做优化的?
- Socket编程有哪些API?
- socket函数返回值代表什么意思?
- C++ 指针和引用区别?
- C++中怎么对内存泄漏情况检查?怎么避免内存泄漏的情况?gcc启用asan标志检查;重载new和delete;使用valgrind工具尽量使用智能指针代替普通指针;使用RAII的思想编写类;预先设定好内存池,使用内存池管理内存(他好像还觉得不满意,让我答出点别的标记清除法(参考其他语言gc的方法;公司有代码审查工具,可以自动检查野指针,空指针,内存泄漏等高风险问题,有问题会给出代码高风险预警
- 目前有没有在面其他公司的提前批?拿到offer了么?
- 问我是哪里人,意向工作地点,父母情况
万得 提前批 C++软件开发 一面
面试官评价动手能力很强,C++底层原理了解不够深,面试时间30分钟。
- 自我介绍
- 聊软件API开发,单元测试
- https客户端项目,事件循环怎么写的,epoll
- 虚函数表的地址怎么获取
- C++11了解么
- C++的mutex源码有看过么,底层怎么实现的
- C++的share_ptr源码有阅读过么,底层怎么实现,有没有使用锁
- C++ 无锁怎么做的?atomic底层怎么实现的
- windows的API熟悉么
- 意向哪个城市,南京还是上海
- 反问技术栈,可能的工作内容学习建议
万得 提前批 C++软件开发 二面
面试了好像20分钟左右
- 自我介绍
- 介绍自己HTTPS客户端怎么做的,哪些优化点
- C++的编译过程
- 对IO多路复用的理解
- 内核态和用户态区别
万得提前批 C++软件开发 笔试
暂时无法在飞书文档外展示此内容
万得已挂
阿里巴巴 早鸟-JAVA开发工程师-买家交易链路方向 一面
面试时间35分钟
- https客户端项目介绍,为什么要设计客户端连接池
- CPU,内存,磁盘怎么协同执行程序的
- 并发编程理解
- 为什么进程之间切换开销大于线程之间切换开销
- 为什么要区分内核态和用户态
- 死锁条件
- 说一下熟悉的git命令,git commit 和 git push 区别,为什么要设置一个暂存区
- 反问环节
面试完后一天告诉挂了
中兴 软件开发工程师 未来领军计划 一面
腾讯会议面试,三个面试官,应该是2个技术面试官,1一个hr,面试时间50分钟左右
- 自我介绍
- 说一下你主要用什么编码,以及代码量
- 做项目时候有没有遇到奇怪的BUG,怎么解决的(数据竞争问题-tasan,未正确放置终结符'\0')
- 你研究生方向是什么,做过什么项目(我说NLP),为什么做的跟研究生方向不一样
- 某个线程占用率高,怎么排查问题(面试官说top命令的一个关键参数啥的,没听清top, ps, pstackLinux C++ 程序占cpu%问题排查_幻想之渔的博客-CSDN博客10 | 案例篇:系统的软中断CPU使用率升高,我该怎么办?-极客时间
- gdb怎么调试多线程
- 说一下死锁的原理
- 多线程中你用过哪些锁,遇到过死锁的情况么(pstack+gdb)
- 有遇到过内存泄漏的情况么,怎么处理的
- 看你做的网络相关很多,TCP和UDP的区别。
- 微信和QQ收发消息用的什么协议,现在这个视频用的什么协议
- socket底层的关键字你有使用过吗,协议怎么设计的
- mysql的索引优化你使用过么
- 数据库里面的表怎么设计的
- docker你有使用过吗
- C++的类生成的默认函数有哪些
- 你对重载,覆盖,隐藏的理解
- 多态情况下基类编写需要注意什么情况
- C++智能指针管理对象的原理是什么
- 你有没有阅读过什么开源库,简要介绍一下
- 貌似是hr的面试官开始问你家住在哪里,意向城市,为什么考虑这些城市工作内容希望做什么你现在有没有在面的其他公司
- 反问环境反问这个计划面试流程有几轮,至少两轮技术面
中兴 软件开发工程师 未来领军计划 二面
两个面试官
- 自我介绍
- 意向城市,你家乡在哪,你有没有女朋友,女朋友在哪座城市?
- 你自己认为你个人的优缺点是什么?
- 你个人遇到的最大的挫折是什么?你觉得自己抗压能力怎么样?
- 遇到项目优化的情况,你的解决思路是什么?如果你没办法完成优化你会怎么办?
- 你有过支持别人的经历么?
- 你觉得自己的领导能力怎么样?
- 你的想法跟领导有分歧,该怎么解决?你的领导如果不在技术岗多年,怎么办?
- 如果你在现场,项目崩溃了,3天内需要你解决这个问题,怎么解决?
- 你有很多任务,领导安排的,领导的领导安排的,同事安排的,你的时间怎么安排?
- 意向薪资,目前手里有没有别的offer,考不考虑在目前这家实习的公司转正?
- 你对中兴的了解是什么
- 反问环节业务内容
已挂
壁仞科技 AI软件开发工程师 一面
面试时间30分钟
- 自我介绍
- 介绍一下你常用的linux命令
- 你makefile写的多么
- 编译遇到undefined symbol情况你怎么解决的
- 遇到段错误你怎么排查问题的
- 你python调用C++生成的代码怎么做的(答了一下Cython的使用方法
- C++ 继承和多态
- C++ vector相关,内存释放怎么做我们常用的操作clear()和erase(),实际上只是减少了size(),清除了数据,并不会减少capacity,所以内存空间没有减少。那么如何释放内存空间呢,正确的做法是swap()操作。①可以利用swap()方法去除vector多余的容量:vector<T>(x).swap(x);其中,x是当前要操作的容器,T是容器的类型。②利用swap()方法清空vector容器:当 swap() 成员方法用于清空 vector 容器时,可以套用如下的语法格式:vector<T>().swap(x)。https://zh.cppreference.com/w/cpp/container/vector/shrink_to_fit
- C++智能指针介绍一下
- 一个单例模式怎么实现
- C++多线程编程,你一般怎么做的
- 对硬件相关了解么,我们这边很多需要软硬结合的
- 反问业务范围
壁仞科技 AI软件开发工程师 二面
- 手撕实现线程安全的单例模式(cpp11之前的,cpp11标准之后的两种方式)只记得11的实现的方式了。。
- 手撕实现string
- 手撕实现完美转发(只记得std::forward了,忘了咋写)
- 目前在面哪些公司?对我们公司了解啥(对公司了解仅知道它是做AI芯片的,我说在流程中的有十多家,他说你是海投那种的呀,不去了解公司啥的,很尴尬
- weak_ptr使用场景(请说出除了解决循环引用的以外的
- C++右值引用
- 反问流程至少还有一轮技术面工作内容面试完统一分配
帆软科技 后端工程师 笔试
- 一本书里有100万单词,判断其中可能写错的单词有哪些,并给出可能正确的实现,分析相应的时间和空间复杂度。
- 有一个数据表,有三个字段A,B,C,一共1000万行,字段A中不同的值有100万个,字段B中不同的值有10万个,以A字段为行维度,B字段为列维度,对字段C做求和运算,得到一个100万行,10万列的一个交叉表。在浏览器段显示这个交叉表时每页显示100行,10列,那么浏览器端开始计算这个交叉表,然后显示第一页的数据以及总页数的时间和空间复杂度是什么样?在浏览器输入页码,返回对应页码数据的时间和空间复杂度是什么样。
帆软科技 后端工程师 一面
面试时间50分钟,场景题目为主
- 面对一个场景,我们的服务器宕机情况很多,有已知的问题和未知的问题,你会选择什么样的方案来处理?尽可能多的说出你的解决思路面对已知的问题尽量去解决它未知的问题,服务器做好备份,流量控制,用户的这个服务锁死在一个容器里面,如果挂掉切换容器
- 目前有一个高性能的计算引擎,内存有限,可以处理1亿个数据计算,面对两种情况:小数据计算,大数据(类似100亿左右的),该怎么处理这个问题?尽可能多的说出你的解决思路
- 尽可能多的说出一些提高项目性能的方案,减少代码错误,内存泄漏等情况?代码规范,单元测试用例,代码评审,测试,项目文档等等
- 你想怎么样衡量自己的工作成果(绩效),工作中有的任务是你Leader安排的,有的问题是同事来求助的,有的问题是来自其他组的?
- 你期望的base地点
- 反问环节工作主要的技术栈和业务内容开发类似apache的doris数据库那种
友塔游戏 游戏服务端工程师 笔试
- 输入一个n*n的图,图中有不同颜色的球,点击一个球,会使得相同颜色的球爆炸(像连连看那种),每个位置不一样,请给出点击得到最大价值的一种方式.************************************************* 变形版本
输入 5 颜色图 1 1 1 2 3 1 1 1 2 3 1 1 2 3 1 1 1 3 1 1 1 1 2 1 1 价值图(可能不一样,以下只是例子) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 输出 12 1 1 1 1 1 1 1 1 1 1 1 1 加起来
- 区间覆盖 *********************************************
- 有一张 n个节点 m条边构成的的无向图 (注意该图并不保证所有节点连通,且图中可能成环) , 节点标记为1.2.3...N,在2之后的节点上,每个节点都存在无限数量的价值为Ai的珠宝 现在有一个小偷,从节点1出发,去各个节点上偷取珠宝,已知他身上只能带一个珠宝,且偷到珠宝后必须放回节点1,假设偷取/放下珠宝不消耗时间 移动到相邻节点消耗1单位时间,请问在k单位时间内小偷能偷到最大多少价值的珠宝 (放回节点1的珠宝才算偷到)
打家劫舍问题图论版本
输入描述:输入第一行三个元素,分别是节点数n,边数m,时间k 第二行为2到n上珠宝的价值 第三行及之后,代表每一条边的信息,表示这两个节点之间有边相连
输出描述:输出为k时间内能偷到的最大珠宝价值
- 给一个n*m的矩阵游戏规则如下,玩家依次从第一行开始往后选取财宝,如果选取了a[i][j]位置的财宝,那么a[i+1][j-1],a[i+1][j+1]位置的宝箱就会被引爆,就不能被选取。
输入描述
第一行输入整数n和m 0<n<=10,0<m<=10,表示有n行和m列,接下来n行,每行输入m个整数
输出描述
求最后玩家能够获取到的最多的财宝是多少?
输入 2 3 3 2 1 1 2 3 输出 8
友塔游戏 游戏服务端工程师 一面
面试20分钟
- 无自我介绍直接开始
- HTTPS客户端项目优化思路
- cache和buffer有了解么
- Linux free操作以后怎么查看
- MYSQL索引相关请介绍一下
- explain语句, Using filesort怎么优化16 | “order by”是怎么工作的?-极客时间11 如何判断一个SQL语句是否有性能问题?-慕课专栏
- 查询玩家的关卡数据,玩家好友的特定一关的关卡数据建立 玩家id-关卡的联合索引
- redis高性能的原因
- redis的zset数据结构底层实现
- 看你也比较喜欢玩游戏,为什么选择服务端而不是客户端
友塔游戏 游戏服务端工程师 二面
面试时间25分钟,面试官比较和蔼,无自我介绍环节
- 聊我的项目优化思路
- 只考虑C++开发么,不考虑其他语言么?
- 了解C++智能指针底层原理吗,介绍一下
- 如果你来设计一个智能指针,你会考虑哪些地方02 | 自己动手,实现C++的智能指针-极客时间
- 面对大量的读写请求你怎么处理
- 怎么设计一个读写锁如何理解互斥锁、条件锁、读写锁以及自旋锁? - 邱昊宇的回答 - 知乎如何理解互斥锁、条件锁、读写锁以及自旋锁? - 知乎
- 反问环节在做什么游戏,我进去以后可能做什么
二面完一小时通知进行人事面
OPPO 系统工程师 笔试
20道选择(40分),3道编程(60分)
- 第一行输入正整数n和q, 代表数组的大小和操作次数。第二行输入n个正整数ai,代表小欧拿到的初始数组。接下来的q行,每行输入两个正整数i和x,代表将第i个元素变为x
这道题使用 long long 就可以过,经验
1 ≤ n, q ≤ 10^5
1 ≤ i ≤ n
1 ≤ ai, x ≤ 10 ^ 9
输入 5 3 1 2 3 4 5 2 3 3 3 5 1 输出 16 16 12
- 给一个矩阵左下角坐标a,b,右上角坐标c,d给一个圆心坐标x,y,求覆盖圆的最小面积,cpp实现,π取3.1415926
#include <iostream> #include <cmath> using namespace std; const double PI = 3.1415926; int main() { int a, b, c, d, x, y; cout << "Enter the coordinates of the lower left corner of the rectangle (a, b): "; cin >> a >> b; cout << "Enter the coordinates of the upper right corner of the rectangle (c, d): "; cin >> c >> d; cout << "Enter the coordinates of the center of the circle (x, y): "; cin >> x >> y; // 计算圆心到矩形四个顶点的距离 double dist1 = sqrt(pow(x - a, 2) + pow(y - b, 2)); double dist2 = sqrt(pow(x - a, 2) + pow(y - d, 2)); double dist3 = sqrt(pow(x - c, 2) + pow(y - b, 2)); double dist4 = sqrt(pow(x - c, 2) + pow(y - d, 2)); // 计算圆的半径 double radius = max(max(dist1, dist2), max(dist3, dist4)); // 计算圆的面积 double area = PI * pow(radius, 2); cout << "The minimum area required to cover the circle is: " << area << endl; return 0; }
- 输入一个数组,该数组的所有乘积2进制末尾至少有k个0,输出2进制末尾为k个0的最短长度。
第一行输入两个正整数n和k
第二行输入n个正整数ai。
分解成子问题:1. 存起来每个数2进制末尾的个数(注意加起来就是乘积的2进制末尾个数),把每个数的2进制数都记录下来 2.给定一个数k,找到数组中大于等于k的最短连续子数组。(滑动窗口)
#include <iostream> #include <vector> using namespace std; int countTrailingZeros(int n) { int count = 0; while ((n & 1) == 0) { n >>= 1; ++count; } return count; } int main() { int numZeros = 0; for (int num : nums) { numZeros += countTrailingZeros(num); } if (numZeros < k) { return -1; } }
#include <iostream> #include <vector> #include <queue> using namespace std; int shortestSubarray(vector<int>& nums, int k) { int n = nums.size(); vector<int> prefixSum(n + 1, 0); for (int i = 0; i < n; i++) { prefixSum[i + 1] = prefixSum[i] + nums[i]; } int ans = n + 1; queue<int> monoQue; for (int i = 0; i <= n; i++) { while (!monoQue.empty() && prefixSum[i] - prefixSum[monoQue.front()] >= k) { ans = min(ans, i - monoQue.front()); monoQue.erase(monoQue.begin()); } while (!monoQue.empty() && prefixSum[i] <= prefixSum[monoQue.back()]) { monoQue.pop_back(); } monoQue.push_back(i); } return ans == n + 1 ? -1 : ans; } int main() { vector<int> nums = {2, 3, 1, 2, 4, 3}; int k = 7; int ans = shortestSubarray(nums, k); cout << ans << endl; return 0; } 这里使用了前缀和和单调队列的思想,时间复杂度为O(n),其中n为数组长度。具体思路如下: 1. 首先计算出数组的前缀和,即prefixSum[i]表示nums[0]到nums[i-1]的和。 2. 初始化一个空的单调队列monoQue,用于维护前缀和的单调性,队列中存放的是前缀和的下标。 3. 遍历前缀和数组prefixSum,对于每个位置i,做如下操作: - 如果队列不为空并且当前前缀和减去队列头部的前缀和大于等于k,则更新答案ans为当前下标i减去队列头部的下标,并弹出队列头部; - 如果队列不为空并且当前前缀和小于等于队列尾部的前缀和,则弹出队列尾部; - 将当前下标i插入队列尾部。 4. 最后如果答案ans未被更新,则返回-1,否则返回ans。 这个算法的时间复杂度为O(n),空间复杂度为O(n),其中n为数组长度。
OPPO 系统工程师 一面
被面试官吐槽项目经历太少,多深入学习一下安卓的架构,面试时间30分钟
- 自我介绍(面试官让我介绍一下实验室的项目讲了我在实验室做的横向项目
- 面试官说我们来考察计算机基础(这个环节基本是我在说你对JAVA了解么说一下C++常用的数据结构C++怎么解决线程冲突的方式你知道哪些排序算法,它们是怎么排序的你知道epoll的原理么hashmap插入的时间复杂度
- 你说你经历过最难的问题,你是怎么解决的
- 你有没有论文,你是学硕还是专硕
- 反问环节问他们业务内容安卓framework层,建议我学习安卓从上层应用层出发,由上至下
OPPO 系统工程师 二面
面试了25分钟
- 安卓系统架构理解
- 相机拍照流程介绍,log分析
- TSAN工具介绍
- 动态链接库和静态链接库理解
- 导出动态链接库中,有的函数你不想暴露给外面使用,有什么方法
- HTTPS客户端项目优化思路
- 生产者消费者模式理解
- 你对系统,还是服务端还是底层,哪个方向的工作感兴趣
- 反问想问问工作内容和职责
OPPO 系统工程师 加面
20分钟,聊天为主
- 项目介绍
- 数据结构考查
韶音科技 嵌入式软件开发 HR面试
面试20分钟
- 自我介绍
- 学校经历,考研原因
- 为什么经历都有点短,找实习的目的是什么
- 为什么想来深圳
- 感觉你的经历不适合投嵌入式,为什么考虑投嵌入式
- 对韶音的了解
- 反问环节流程两轮技术面后,再进行简历筛
已挂
元戎启行 软件工程师 一面
*********************************
元戎启行 软件工程师 二面
面试时间45分钟
- 自我介绍
- 项目介绍,你遇到过什么困难
- C++智能指针原理
- 重排链表我先拿双端队列写的,面试官让我之后改成O(1),调试了半天(
- 你对IT行业的理解
- 你想做什么方向,看你更适合做互联网那种后台
- 反问问了一下工作内容
元戎启行 软件工程师 三面
面试时间一小时10分钟
- 自我介绍
- C++内存模型有了解么,大概介绍一下
- make_shared 和 裸指针创建智能指针对象智能指针shared_ptr踩坑笔记
- 裸指针创建对象问题
- 排查定位系统死锁问题思路
- 场景手撕
class Service{ void request(){ } void query(){ // count last 5 minutes request times } }
作业帮 后端软件开发 笔试
- 输入四位整数,每位数字都加上五,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。输入1234,结果9876。使用cpp实现
#include <iostream> using namespace std; int main() { int num; int digits[4]; // 读取四位整数 cin >> num; // 分离各位数字并加上5 for (int i = 0; i < 4; i++) { digits[i] = (num % 10 + 5) % 10; num /= 10; std::cout << digits[i] << " "; } return 0; }
- 322. 零钱兑换
- 695. 岛屿的最大面积
它的输入是字符串,注意处理输入
输入: 0,0,1 0,1,1 #include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<vector<int>> arr; // 读取输入 string line; while (getline(cin, line)) { vector<int> row; size_t pos = 0; string token; while ((pos = line.find(",")) != string::npos) { token = line.substr(0, pos); row.push_back(stoi(token)); line.erase(0, pos + 1); } row.push_back(stoi(line)); arr.push_back(row); } // 输出数组 for (const auto& row : arr) { for (const auto& value : row) { cout << value << " "; } cout << endl; } return 0; }
作业帮 后端软件开发 一面
面试时间48分钟
- 寻找旋转排序数组中的最小值 II
- C++ vector 扩容机制
- C++ map 底层数据结构,红黑树插入和查询时间复杂度
- shared_ptr原理,多线程下使用shared_ptr需要注意什么
- 进程的内存布局
- 进程和线程区别
- MySQL索引你了解哪些
- 如何查询最热门100条的查询URL(注意可能有重复)(10亿个url,每个url 64 B,内存1GB分治法,并且保证同一个url放到同一个文件中,每个文件取top100到小顶堆
- HTTPS客户端项目优化,线程池优化(非活跃的时候怎么搞
- 反问环节
作业帮 后端软件开发 二面
面试时间1小时5分钟
- 简历上经历依次问一下,让你自己说一下(问了我性能优化的思路,项目设计思路,是怎么解决遇到的问题)
- C++ 多态,继承,封装的理解,你项目中有没有哪里体现过这些思想
- C++ 智能指针原理,被用在哪些场景
- mysql索引,说说你了解哪些
- 你对多路复用的理解,它们怎么使用
- 单例模式,工厂模式
- 验证回文串(出了两道题,可以选一道做,先说思路再做)
埃科光电 软件开发 笔试
用的牛客,代码题没有测评通过,是那种写笔记形式的
选择10道,10分
- ARP协议
- 。。。
问答题,5道,90分
- 写一种常用的排序算法,常见思路 10分
- C++几种智能指针的常用场景 10分
- 内存泄漏检查方法 10分
- 给一个数组,返回顶峰,类似这样:[1, 3, 2] 返回3 30分
- 输入两个元素,1.step步数, 2.数组长度 ilen, 从索引0出发,返回索引0位置的方案有多少种?30分
已挂
鼎阳科技 嵌入式开发 笔试
- 已知有如下界面,请设计这些界面的类图。提示:只需描述设计思路即可,可使用文字+框图的方式描述 (按你的理解定义所需要的类;且描述类之间的关系)
界面1 频率 xxx 幅度 xxx 偏移量 xxx 相位 xxx 界面2 脉宽 xxx 上升沿 xxx 延时 xxx
后续可能会出现新的与界面1,界面2类似的界面需求:可能有类似的界面n
- 如下代码有哪些问题?
int main( void ) { char *str = NULL; *str = get memory (); printf( str ); } char * get memory( void ) { char p[20]; memcpy(p,"hello world",11) return p; }
- 64位系统中,下面这段代码输出什么内容?
char*p="Hello"; printf("size=0x%08x,len=%d ",sizeof(p).strlen(p));
- 数组(43,29,45,49,3866,25,53]进行快速排序,请写出首次快速排序的完整过程
- 2+ (9+6/3-5)*4转化为后缀表达式是什么?
- 已知某结构体指针some_struct *p;表达式(unsigned long)(p+sizeof(some_struct))-(unsigned long)p;的值最可能是:请输入[A、25 B、80 C、100 D、144]并请说明理由。
选D,指针p+1的值是指针p加一个结构体的内存,指针p+sizeof的值是p+结构体内存的平方;结构体按最大成员变量的长度做对齐,12可以看成3个int
亿联网络 Go工程师 笔试
操作系统中常见的两种文件访问方法:顺序,随机
go的切片由哪三个字段组成?
go函数参数传递方式?
go的并发原语,用于在多个goroutine中通信的是什么?
go使用什么可以捕获panic么
go中哪个关键字应用于接口中声明方法
go中哪个数据类型表示unicode
go的接口类型如何实现,类型继承,类型嵌入,duck typing还是泛型?
影石 移动端C++开发 笔试
- weak_ptr的使用,解决循环引用问题(修改代码中的问题)
- 针对重复字符串实现一种优化长度转换。比如IIISSTTAAAA转变为I3S2T3A4。如果压缩以后反而更长,返回原来的。使用cpp实现
#include <iostream> #include <string> std::string compressString(const std::string& str) { if (str.empty()) { return ""; } std::string compressedStr; char currentChar = str[0]; int charCount = 1; for (int i = 1; i < str.length(); i++) { if (str[i] == currentChar) { charCount++; } else { compressedStr += currentChar + std::to_string(charCount); currentChar = str[i]; charCount = 1; } } compressedStr += currentChar + std::to_string(charCount); if (compressedStr.length() < str.length()) { return compressedStr; } else { return str; } } int main() { std::string str = "IIISSTTAAAA"; std::string compressedStr = compressString(str); std::cout << compressedStr << std::endl; return 0; }
- 146.LRU缓存. - 力扣(LeetCode)
影石 嵌入式开发 笔试
- fork()||fork()共创建几个进程
- 操作系统中锁的底层实现原理
- 如何保证编写代码的稳定性
- 浅拷贝和深拷贝区别
- 指针数组,数组指针,函数指针概念,区别
- 二分查找(有重复元素的有序数组),只能用c语言实现
- 实现手机菜单,设计多级菜单的数据结构,并将菜单内容打即出来,只能用c语言实现
影石 嵌入式开发 一面
两个面试官面我,应该是想到啥问啥,面试40分钟
- linux上电启动整个系统的过程
- 内核态到用户态转换过程
- Open 和 fopen区别
- 平时内存管理怎么做的
- C++多态有哪些,怎么实现
- 平时C,C++使用比例
- 多线程和多进程区别
- 创建互斥锁的linux API
- TCP/IP有几层
- HTTP协议怎么实现的
- TCP 套接字开发服务端得使用哪些API
- 小米实习主要做了啥
- 相机怎么使用dma_buffer
- 视频常见编码格式了解么H.264、MPEG-4、MPEG-2、WMA-HD以及VC-1
- 音频常见编码格式了解吗
- 实习跳槽为什么这么频繁
- 个人业余喜欢什么
- 喜欢看什么类型动漫
- 反问业务和技术栈:sensor相关,通信相关很多,主要使用C语言面试流程:后续还会有2-3轮技术面
无后续
字节跳动 后端开发工程师(直播) 一面
面试时间50分钟,面试官人挺好,可惜我八股太废物了,得多多努力了
- 先说了一下今天的面试流程
- 自我介绍
- 你觉得哪个项目或者经历对你能力提升最大,介绍一下
- 询问HTTPS客户端项目优化思路
- GET和POST区别
- 键入网址到网页显示,期间发生了什么?尽可能详细描述这个过程
- Cookie和Session区别cookie和session的区别(全面总结) - 掘金19 | 让我知道你是谁:HTTP的Cookie机制-极客时间
- 如果让你设计一个直播用的协议,你会怎么设计?
- 你知道有哪些索引,可以说一下么MySQL 的索引可以从不同的角度进一步划分。比如说根据叶子节点是否包含数据分成聚簇索引和非聚簇索引,还有包含某个查询的所有列的覆盖索引等等。数据库使用索引遵循最左匹配原则。但是最终数据库会不会用索引,也是一个比较难说的事情,跟查询有关,也跟数据量有关。在实践中,是否使用索引以及使用什么索引,都要以 EXPLAIN 为准。
- 主键索引和唯一索引区别
- 主键索引和二级索引哪个快,为什么呢
- 联合索引 where a or ...,该怎么优化10 为什么我明明创建了索引,SQL却无法用到?-慕课专栏
- redis有哪些数据结构?zset是什么
- redis持久化的方式
- 求两个集合的交集,你选择采用什么数据结构
- 物理内存和虚拟内存区别
- 进程之间通信方式有哪些
- 进程和线程之间区别
- 多线程问题,1w个用户,你只能同时取一个id得到年龄的接口,怎么处理?如果有的线程执行快,有的执行慢?
- 最长回文子串
字节跳动 后端开发工程师(直播) 二面
面试时间1小时
- 自我介绍
- 内存池是怎么设计的
- HTTPS客户端项目优化
- HTTP/3.0 你了解它的原理吗
- 软中断和硬中断09 | 基础篇:怎么理解Linux软中断?-极客时间软中断和硬中断之间的联系与区别 - 圈点 - 内核技术中文网 - 构建全国最权威的内核技术交流分享论坛
- FIN_WAIT2状态你了解么
- TCP和UDP头部区别,说一下TCP头部有哪些字段,尽可能多
- select/poll/epoll原理你知道么,epoll是阻塞的还是非阻塞的
- 零拷贝技术你有使用过么,说一下它的原理9.1 什么是零拷贝?
- 如果协议依靠特殊字符来分段有什么问题
- aof持久化原理,rdb持久化原理,它们的优缺点?怎么改进(我说了一下混合持久化的方式
- 你了解mysql的索引设计么,下面这个索引该如何设计
- Select * from t1 where a = 'x' and b != 'x' and c = 'x' order by d desc limit 0, 10
- 智力题:有三张扑克,一张红桃,两张黑桃,三张牌都在C这里。选到红桃明天可以不用上班。A抽了一张牌,然后C翻开手里一张牌发现是黑桃,如果你是A,你会选择跟C手里没有被翻开的那张牌交换,还是不交换
- 验证二叉搜索树
第二天通知挂掉
柠檬微趣 C++服务端 笔试
- 组合数,给定n和s,n个数字,这n个数字中有多少种情况相加之和等于s,不同位置相同的数视为不同。
- Leetcode第10题 正则表达式匹配 和 44题 通配符匹配 合体,支持 '?' 和 '*' 和 '.' 的匹配
- 野猪骑士,下一个较大元素的最小值(用单调栈可以骗分16%
- 排行榜,要支持ADD, UPDATE, SERACH这些操作,有时间复杂度要求
已挂,这家对笔试要求比较高(它题库不大,做之前建议牛客搜搜
中望 C++软件开发 笔试
题目重复率高,做之前牛客搜搜
// 下面这段代码应该是陷入死循环无法退出 #include <map> int main() { std::map<int, int> m; m[0] = 1; for (auto it = m.begin(); it != m.end(); ++it) { m[it->second] = it->second + 1; } }
- 删除排序链表中的重复元素
- 最大回文数字
- 卡车上的最大单元数
中望 C++软件开发 一面
面试时间35分钟
- 项目线程池怎么实现的
- 多个线程竞争的情况怎么处理
- C++封装,继承,多态
- 多态是怎么实现的
- dynamic_cast的原理
- 除了typeid 获取的rtti类型,还有哪些类型
- C++函数重载原理,为什么C语言里面没有重载
- C++ 加const能不能构成重载C++ 加const能不能构成重载的几种情况_多个const修饰可以重载吗_learner_pu的博客-CSDN博客
- new/delete和malloc/free 区别
- 求最短路径算法一般使用什么,体现了什么思想
- 如果有很多圆,它们只有相交和相离两种状态,你怎么判断每个圆被哪些圆包含
- 红黑树操作时间复杂度,建立一颗红黑树时间复杂度多少
- vector和list区别
- unordered_map,unordered_set原理
- 怎么测试哈希表性能
- 反问C++相关的工作,有自研的内存池,数据库这些面试结果一周内反馈
中望 C++软件开发 二面
面试时间30分钟,聊天为主
- 自我介绍
- 项目介绍
- 期望薪资
- 为什么考虑武汉
- 反问环节
小红书 C++后端 笔试
a了第一道,第二道,第三道都是骗分。微信群里看到的一些题目和解答发过来(侵权的话私信我删除
在群里看见别人发的
第一题
在群里看见别人答案,我也像别人这样做的
第二题
从数轴上截取一个连续区间 问里面存在的区间长度之和
贪心+二分
第三题
在群里看见别人答案
百度 C++/PHP/Go后端 一面
面试时间45分钟
- 拍照流程,log是怎么分析
- cpp的多态怎么实现的
- cpp的内联函数作用,什么情况下不进行内联
- linux多线程你了解哪些
- 进程,线程区别
- 操作系统为进程分配了什么资源
- tcp,udp区别
- 操作系统做了什么保证tcp可靠传输
- 三次握手,四次挥手
- time_wait状态含义,有什么作用
- io多路复用介绍
- 反转链表,迭代和递归
- 反问环节问了一下工作内容(搜索方面,主要使用go语言问能不能提前实习
百度 C++/PHP/Go后端 二面
面试时间49分钟,面试官跟我说:我们这个部门是业务研发部门,跟你之前的经历都不太像,感觉你很偏底层,GO基础得好好补补
- 自我介绍
- https客户端项目优化分析
- 拍照流程,log是怎么分析
- redis服务器怎么实现的,有没有拿redis-cli去测试
- go的gmp调度你知道么(不会
- 你了解哪些设计模式,说一下
- go的interface实现设计模式怎么做的(你go不太熟悉,那我们来问问C++问题
- C++内存泄漏怎么预防呢
- 你对linux内核了解多么
- 静态链接库,动态链接库区别
- 动态链接库具体原理(记不清了,貌似是查找到那个函数过程得说出来
- 场景题:手机扫码PC二维码,实现登录功能,你考虑怎么实现?(抽象成问题:http网站的登录(原理)过程是怎么做的?)
- 智力题:99个球,每次只能取1-4个球,A先去取,A怎么取保证胜利
- 反转链表,迭代和递归
- 反问
百度 C++/PHP/Go后端 三面
- 自我介绍
- 你觉得对你成长影响比较大的一段经历
- 国内最可能做成大模型的是哪家公司
- 未来取代抖音的是什么形式的APP
- 可以来提前实习么,Go基础怎么样
华泰证券 后端 笔试
- b/s架构必须实现http协议么(必须的), c/s架构和b/s架构区别
- 分组加密算法与散列函数算法实现的最大不同是
- 关系数据库规范化是为了解决关系数据库什么问题
关系数据库规范化是为了解决数据冗余、数据依赖和数据更新异常等问题。 在关系数据库中,如果存在冗余数据,会导致数据存储空间的浪费,同时也会增加数据更新和维护的难度。例如,如果一个员工在多个部门工作,将其信息重复存储在多个部门表中,就会导致数据冗余。如果某个员工的信息需要更新,就必须更新多个部门表中的数据,这样会增加数据更新的复杂度和风险。 此外,如果数据之间存在依赖关系,也会导致数据更新异常。例如,如果将员工的姓名和部门信息存储在同一个表中,那么如果某个部门的名称更新,就需要更新该部门下所有员工的信息,这样也会增加数据更新的复杂度和风险。 关系数据库规范化通过将数据分解为更小的表,并通过使用外键来建立表之间的关系,可以消除数据冗余和数据依赖,从而降低数据更新的复杂度和风险。同时,规范化还可以提高数据的查询效率和数据存储空间的利用率,从而提高数据库的性能和可靠性。
- 工厂模式遵循了什么设计原则
- 内存管理中的lru是用来管理物理还是虚拟内存的分配和释放虚拟
- 求两个数最小公倍数
#include <iostream> using namespace std; int gcd(int a, int b) { // 求a和b的最大公约数 if (b == 0) return a; else return gcd(b, a % b); } int lcm(int a, int b) { // 求a和b的最小公倍数 return a * b / gcd(a, b); } int main() { int a = 12; int b = 18; int result = lcm(a, b); cout << "a和b的最小公倍数为:" << result << endl; return 0; }
- 多数元素
- 排序数组
华泰证券 后端开发 一面 现场面试
线下面30分钟,一面各种基础考察为主
- 自我介绍
- 介绍自己项目
- redis跳表怎么实现的
- Redis aof和rdb持久化原理
- Mysql 事务特性
- Mysql 底层数据结构B+树
- C++多态怎么实现的
- 内联说一下
- hashmap底层实现
- io多路复用原理,select/poll/epoll
- 反问
面试完十分钟通知下午二面
华泰证券 后端开发 二面 现场面试
线下面1小时左右
- 介绍自己项目
- 通常项目优化的思路,优化一个代码应该从哪些方面入手
- 电梯调度算法,有20个电梯,员工刷工卡可以到达指定楼层,早高峰上行为主,晚高峰下行为主,凌晨电梯需要一半以上停止使用检修。电梯考虑最优效率(最快速把员工送到指定楼层),电梯有最大承载数量(5-8分钟时间思考)给一张白纸设计类图,类方法,调度算法,注意可扩展性
- 你自己个人的职业规划
- 你有没有听说过华泰的末尾淘汰,你对末尾淘汰的看法
- 手里目前有没有其他offer,最近在投递哪些公司,你的优先级是什么
- 你对华泰证券的了解
- 最后给你一个机会,你说一下自己的优点
- 你为面试华泰做了什么准备
正定私募 C++软开 笔试
低延迟进程间通信
目标: 以alice.cpp和bob.cpp为基础,让两个进程按要求的通信逻辑进行交互,且延迟尽可能的小
单次通信逻辑
芯动科技 GPU软件开发 笔试
- 64位机器上,malloc返回的内存是按照8字节对齐,请你实现按128位对齐的分配器,并给出相应的释放函数
- 一个整数转换成16进制,并按照字符串输出
- 实现一个ringbuffer,需要包含read (*buf, size, ring) /write (*buf, size, ring) 两个接口,支持free/free_size/empty/full操作,并且要对ringbuffer满了时候进行处理
已挂
科大讯飞 C++软件开发 笔试
- 科大讯飞0729非凡计划笔试算法解析
- 注意输入long long
- 输入一个数组,(都是禁着点数,保证不相同)一个正整数的目标数x,求两个正整数之和位x的数量注意禁着点可能大于目标数(考虑完备)
科大讯飞 C++软件开发 一面
面试时间35分钟
- 自我介绍
- 面试官介绍部门主要工作职责,车载AI应用开发
- 你说说你了解的C++特性
- 线程之间同步和互斥怎么做的
- 实际工作中有没有使用过C++新特性
- C++内存模型
- C++内存相关的问题你有遇到过么?
- 你对TSAN工具的理解
- 死锁问题一般怎么解决
- 线程泄漏怎么理解?
- 有没有遇到过内存泄漏的问题
- 为什么考虑合肥
- 反问环节询问了一下具体工作职责
科大讯飞 C++软件开发 二面
面试时间35分钟
- 死锁是什么,怎么调试死锁
- 内存泄漏怎么处理
- gdb调试的时候,出现很多问号,怎么进行调试Linux GDB调试代码 显示问号???的解决方法_gdb 问号_hehe053的博客-CSDN博客
- C++动态多态怎么实现的
- 个人适合担任软件开发工程师的优点
- 个人职业规划
诺瓦星云 软件开发 笔试
- 环形链表
- 最大网络秩
- 二叉树最大深度
- 斐波那契数
诺瓦星云 软件开发 一面
面试时间30多分钟
- 面试官自我介绍
- 自我介绍
- 如果线程池处理一堆任务,有的任务频率很高,应该怎么处理
- 谈谈你对HTTP的理解
- HTTP长连接如何实现的
- TCP的首部有哪些字段
- UDP协议,怎么样设计可以避免丢包
- MySQL有哪些类型的索引
- C++的变量作用域有哪些
- C++你常用哪些特性
- 你对面向对象设计思想的理解
- 有使用过QT么
- 你对你自己未来1-2年规划是什么
- 你认为一个好的团队应该是什么样子的
- 反问工作主要内容:LED屏后面的驱动程序等
诺瓦星云 软件开发 二面
面试时间30分钟,一面二面一个面试官
- 你最近在学什么知识
- 你对自己规划
- 你待过的公司团队之间协作怎么做的
- 你觉得自己技术有哪些需要提升的点
- 后续流程HR面
疯狂游戏笔试
第一道k,targetk在,那么k*2+1,和k*3+1就在。问target在不在容器里面。target==k|| target == k*2+1 || tagret=k*3+1, 还有(target-1)/3 和(target-1)/2的判断
第二题翻转图像像素数组rgb颜色12344个为一组,一组内顺序不能改变。
快手 C++网络SDK 一面
面试时间50分钟
- 自我介绍
- TSAN原理介绍
- 相机拍照流程优化
- https客户端项目优化
- C++ 野指针,悬空指针区别野指针就是不知道指向哪里了; 悬空指针就是指向的地址已经无效了。悬空指针就是将这个指针指向的内存已经释放了,却没有对指针进行赋空,因为C++并没有垃圾回收机制,你delete了一个指针只是释放了指针指向的内存空间,而指针本身依旧还在,正确的操作是delete一个指针后立马将指针赋值为nullptr野指针就是未进行初始化的指针,你不知道这个指针变量里面的内容是什么,一般是最近一次这块内存上面的内容,也就是说不知道用这个指针访问的内存是哪一块,所以指针初始化的时候要typename * p = nullptr;
- 引用和指针区别
- C++ 友元函数,友元类作用
- C++ 多态实现原理
- 多重继承有什么问题
- 怎么获取一个实例的类型 (typeid)
- C++ inline作用
- C++ 智能指针
- make_shared 和 shared_ptr 初始化方式区别Item 21:优先考虑使用std::make_unique和std::make_shared而非new - Effective Modern C++异常安全有关效率
- C++ 模板 相关的(忘了,不太会
- c++ 属性 deprecated
- 动态链接库,静态链接库区别
- 看一段代码有什么问题
- 8个硬币,有个硬币偏重还是偏轻不知道,是假币,用天平至少需要几次找出来(3次)说一下思路
- 反问主要工作内容(音视频部门,视频编解码相关)
快手 C++网络SDK 二面
- 130. 被围绕的区域
- 面完挂,没撕出来
快手 C++工程师 一面
面试时间45分钟
- HTTPS项目优化思路
- 内核同步,时间管理怎么做的
- malloc/free, new/delete区别;new怎么分配内存在栈上
- 虚函数和纯虚函数区别,纯虚函数可以实例化么
- 虚函数调用原理
- 基类指针或引用指向派生类,然后强转成void*,再使用强转回基类指针或引用,去调用虚函数有什么表现
- 派生类指针或引用指向派生类,然后强转成void*,再使用强转回派生类指针或引用,去调用虚函数有什么表现
- 反转链表 II
快手 C++工程师 二面
面试时间75分钟
- sync.Map原理
- 线程,协程区别,你对于协程的理解
- GO协程实现方式,协程调度方式
- 什么情况下推荐使用协程
- 线程调度的方式
- 分析两种遍历方式区别
int a[m][n] for i in m for j in n s+=a[i][j] for j in n for i in m s+=a[i][j]
- 手撕实现shared_ptr
- 项目线程池实现方式
快手 C++工程师 三面
- 自我介绍
- 介绍自己项目和经历
- 你的职业规划
- 你有哪些OFFER
- 设计一个视频搜索系统,你会考虑哪些因素?
- 反问环节
宁德时代 软件工程师 笔试
输入n和k,n表示锂电池总数,k表示购买种类数,接下来输入n个正整数,表示锂电池的额定电压。输出一个正整数表示所有方案中最大差异度。使用cpp 保证通过例子:输入 6 3 13 5 1 8 21 2 输出 8 解析,选择13 5 21时候最大差值是8
- 完美矩形
- 树中距离之和
中欧基金 java 开发 一面
群面,6个面试者,3个面试官
- 自我介绍
- 感受最深的课程
- 遇到最难的挑战
- 咨询答疑环节
其他人学历都好高,有几个海外的硕士并在美国实习的,人麻了
一面完后还要经过挑选和部门评估,选优胜的同学去上海实习一个月,实习一个月会有项目,之后要进行答辩,答辩完后再挑选人进行二面。
星环科技 分布式存储 笔试
- 给定一个正整数n,请你求出所有满足1<i,j<n并且i*j是完全平方数的正整数对(i,j)个数。例如,当n=4时所有满足条件的整数对为(1,1),(1,4),(2,2),(3,3),(4,1),(4,4),输入一个整数n(1<n<10^6)。输出一个整数表示所有满足条件的整数对数。使用C++。保证通过用例,输入4时输出6。
- 实验室的机器人失控了,现在机器人正在暴走他会破坏途径路径上的一切。好在你仍然对它有一定的控制能力,你发现机器人接下来会移动n次,第 次移动a米现在你能够做的是指定每一次移动的方向为左边或者右边,以此尽量减少机器人暴走覆盖的范围。
你想要知道在指定的方向最优的情况下,机器人暴走覆盖的范围最少是多少?机器人暴走覆盖的范围是每次它移动的路径的并集。例如当a={1,2,3}时,你可以指定前两次向左移动,第三次向右移动,那么最终机器人暴走覆盖的范围就是3米。
输入 2 4 5 1 2 5 6 1 1 4 5 1 4 输出 6 5
燧原科技 AI芯片工具开发工程师 笔试
有部分英文题目
19道选择+1道不定项选择+2道问答
选择:
- C++深拷贝
- 下面的 x 值
int x = ~2; std::cout << x << " ";
- -9的补码
问答:
- static作用
- 大端和小端定义,写个函数判断大端和小端
燧原科技 AI芯片工具开发工程师 一面
面试时间40分钟
- 聊项目
- 共享屏幕手撕三道题目,需要打开编译器写测试用例,反转链表,斐波那契数列(空间复杂度O(1)),用栈实现队列
- 对操作系统的了解
Smart 分布式文件系统 面试
面试时间1小时
- 详细询问cpp数据中心项目,有没有在多个服务器测试
- OSI网络七层协议
- 一致性哈希怎么做的,好处,有没有去做分片测试(增加一个节点或者减少一个节点
- 单元测试通常包括哪些内容
- HTTPS客户端项目主要工作
- 写一个波浪形排序(我不知道怎么降低,我是写了个快排+交换
// 将给定的数组中的元素进行波浪形排序,要求时间和空间复杂度尽可能低。 // 波浪形排序是指:arr[0] >= arr[1] <= arr[2] >= arr[3] <= arr[4] >= arr[5] ... // 例如: // 输入:1, 2, 6, 7, 5, 3, 4 // 输出:4, 1, 7, 5, 6, 2, 3
- 反问环节
已挂
地平线 智能中间件软件开发 一面
面试时间50分钟
- 自我介绍
- C++多态
- C++虚函数作用
- 构造函数可以是虚函数吗,内联函数可以是虚函数吗,那静态成员函数呢
- 什么时候需要纯虚函数
- 基类指针和引用转换成派生类指针和引用原理
- 基类的智能指针转换成派生类的智能指针是什么原理
- C++为什么要引入右值
- C++右值引用和左值引用区别
- std::move原理
- 完美转发原理
- C++函数可以返回一个lambda表达式对象吗
- shared_ptr, unique_ptr区别
- C++多线程编程需要使用什么
- lock_guard和unique_lock区别,使用场景
- udp套接字编程过程,tcp套接字编程过程
- 进程和线程之间的区别
- 内核线程和用户线程有什么区别,怎么查看一个线程是否是内核线程
- 内核线程可以访问用户态地址空间吗
- 有使用过共享内存吗,共享内存是怎么实现的
- 虚拟内存是怎么变换成物理内存,MMU,TLB的原理
- 进程有哪几种状态
- 进程上下文切换过程
- 系统调用和进程上下文切换区别
- 单例模式如何实现
- 工厂模式怎么实现
- 一般怎么排查coredump,gdb怎么调试coredump
- 知道图像处理的大致流程吗
- 了解YUV的存储格式吗
- 最小覆盖字串,口述思路
- 反问至少三轮面试业务部门工作内容:车载的sensor,camer,通讯,调度等等
已挂
滴滴 提前批 C++开发 一面
面试官人笑眯眯的,然后面完十分钟就挂了
- 对中断处理理解这里需要重新仔细复盘一下
- TSAN工具原理,线程泄漏是什么情况,数据竞争是什么情况
- C++怎么处理数据竞争这种情况
- TCP重传机制介绍,重传间隔是多少?
- HTTPS客户端项目优化思路,你知道零拷贝么,当时有没有使用零拷贝的思路优化
- Select, poll, epoll原理
- aof日志,rdb持久化原理
- aof日志持久化,会丢数据吗
- 你觉得我有啥没问到的地方吗?
- 剑指 Offer 42. 连续子数组的最大和,除了DP有没有其他方法分治法,不太会写(后面得补补了
- 反问
已挂
腾讯 软件后台开发 QQ社群,社区 一面
面试时间50分钟
- Redis 服务器如何实现的
- 一致性哈希原理,如何做分片
- redis主从复制模式,除了这个还有什么模式
- redis的string是怎么实现的
- 存储1亿个QQ号应该采用redis的哪种数据结构,为什么不采用string呢采用hash,hash有优化,string的话占用内存更高
- mysql有哪些默认引擎,它们特点是什么
- 为什么要采用B+树,而不采用哈希表,或者其他树这些数据结构呢
- 一条 update 语句,会加哪些锁,update一行数据和一个范围内的数据呢?update 没加索引会锁全表?
- Mysql 隔离级别
- MVCC原理
- HTTP协议实现
- HTTP/1.0 和 HTTP/2.0区别
- HTTPS流程
- TCP四次挥手过程
- 第三次挥手丢失会发生什么情况,内部实现原理是什么?
- 进程和线程的区别
- 协程的原理,协程有什么好处和坏处
- C++多态实现
- 和为 K 的子数组用前缀和+哈希表的方式做的时间复杂度,空间复杂度是多少,有没有可以优化复杂度的方法?
面完20分钟看已经挂了
腾讯 WXG软件后台实习一面
面试时间100分钟,上来先写三道算法题,算法题细节要求比较高
- 字符串转换整数 (atoi)注意去掉硬编码,考虑清楚细节
- 合并两个有序链表注意释放掉头节点内存
- 某企业有30万的员工,ID为[1-30万],年终年时需要从这30万名员工中抽取出10万名中奖员工。假设目前有个能够在[0-65535]范围内生成随机数的随机函数rand(),请使用rand()函数编可执行的抽奖程序,为该企业抽出10万名中奖员工的ID
- KCP协议原理
- TCP拥塞控制过程,TCP拥塞控制是降低发包频率还是减小发送窗口
- 内核网络收包过程,这个过程中中断处理的作用,后续协议栈是怎么处理的
- 硬中断,软中断
- DMA拷贝会占用总线么
- 反问环节技术栈和业务内容微信技术架构,主要C++
腾讯 WXG软件后台实习二面
面试时间100分钟,上来先写三道算法题
1.一个文件内有10亿个32位正整数,请从大到小去重后输出到另一个文件
2.倒转单链表(在原链表上倒转)struct LinkNode { int value; struct LinkNode * next;};
3.给定两个字符串s和t,其中t是s的子字符串。s的子字符串是指字符都取自s并且保持s中位置的相对顺序,但不要求顺序是连续的。比如,s="abcdef",t="bd"。要求找出t在s中匹配的子字符串数量。
比如:Input:s="rabbbit", t="rabbit"Output:3
rab b bitra b bbitrabb b it
不同的子序列
- HTTPS项目优化思路
- 线程池设计
- Linux 下排查死锁的方式
- Linux 给定一个二进制可执行文件,排查它是否可能存在内存泄漏
- C++ 多态
- 构造函数可以被声明为虚函数吗?析构函数呢
- 反问环节
已挂
腾讯安全 软件后台开发 一面
面试一小时
- 自我介绍
- HTTPS项目优化,为什么要做这个优化
- 内存泄漏排查怎么做
- gdb调试的时候,如果没有任何信息,有当前的内存地址和源代码,怎么做调试
- 正向代理,反向代理
- Nginx知道么
- MYSQL事务怎么实现的?
- TCP四次挥手过程
- 出现Time_wait状态怎么办
- 为什么不找数据分析,数据开发的工作,而要投递我们这
- 你个人优点和缺点,你的缺点你现在是怎么改进的?
- 手撕LRU
- 反问环节主要做腾讯云服务器的安全
腾讯安全 软件后台开发 二面
面试时间69分钟
- 自我介绍
- 21. 合并两个有序链表
- 53. 最大子数组和
- 介绍自己过往经历中觉得做的最好的项目
- 还有什么其他能改进的地方?DPDK原理
- traceroute原理
- 输入网址到网页显示,期间发生了什么
- TCP三次握手过程,为什么不是两次或者四次
- SYN发送太快有什么问题
- 实现一个并发安全的hashmap应该怎么考虑,(先确定哈希冲突方式,再确定如何加锁
- mysql的索引实现方式
- mysql的哈希表的扩容方式
- 操作系统进程内存模型实现
- 逻辑地址到物理地址转换过程
- 个人职业发展规划
- 个人优点,缺点
- 为什么不考虑做深度学习,大模型相关的算法工作
- 个人曾经遇到最大的困难,怎么解决这个问题的?还有什么别的学习方式么。
- 反问CSIG的部门,分析网络流量有无威胁
超参数科技 后台开发工程师 一面
面试时间1小时
- 自我介绍
- 实习时间为什么这么短
- 介绍自己项目
- 增量数据传输场景题,怎么设计数据结构
- 一个矩形n × m,全为1,给一个(x,y),半径r,将半径r内的点改为0
已挂
华大 eda软件开发 面试
面试时间50分钟,五个面试官
- 自我介绍
- 复盘4道笔试算法题目
- 右值引用,完美转发
- Vector push_back n 个元素,怎么证明这个过程时间复杂度是O(n),数学的方式
- 快速排序和堆排序时间复杂度都是O(logn),为什么快速排序叫快排,为什么在平均情况下快速排序比堆排序要优秀?
- 你个人求职意愿
- 介绍你自己一个难度比较大的项目
- 数据中心项目目的和难点
- 反问环节业务内容,新人培养
拓竹科技 C++软件开发 一面
面试45分钟左右,面试官网络较差,后续换的电话面试
- 自我介绍
- C++ 模板特化
- 网络方面开发你主要擅长哪些
- 线程泄漏是什么
- TSAN工具原理
- 你对操作系统内存管理有哪些理解
- 内存跟文件怎么建立关系
- 一个进程运行的时候,内存跟进程的程序文件有没有关系
- 实习工作内容
- 最长递增子序列
拓竹科技 C++软件开发 二面
面试50分钟
- 自我介绍
- HTTPS客户端项目拷打
- C++lambda表达式,lambda表达式开销
- C++智能指针,介绍一下
- C++右值引用
- C++11的enumItem 10:优先考虑限域枚举而非未限域枚举 - Effective Modern C++
- 你说一下自己的优点和缺点
- 对3D打印行业的了解
- 你喜欢DIY么
- 反问环节新人培养半年有个mentor,三个月试用期
达摩院 C++软件开发 一面
面试40分钟
- 自我介绍
- 介绍一个你觉得自己做的难度比较高的项目
- pybind和cython哪个封装损失的性能少
- 异步IO有使用过么
- 多路复用原理
- 编辑距离
- 被围绕的区域
- 你对未来的规划
- 你们实验室有没有论文发表的要求
- 反问
已挂
东方财富 C++服务端软件开发 一面
面试时间30分钟
- 你对内存泄漏理解,怎么处理内存泄漏
- C++菱形继承问题
- HTTP协议理解
- HTTPS过程
- 对称加密和非对称加密作用
- 懒汉式单例模式怎么实现,线程安全吗
- 寻找链表的中间节点,白纸手写
已挂
蔚来 中间件开发 笔试
- 在二叉树中找到一个节点的后继节点__牛客网
- 二叉树中的最大路径和
莉莉丝 服务端软件开发 笔试
- 给定一个n个点和m条边的无向图,点编号从1到n,图中不含重边和自环。请你对给定图进行判断,如果该图是一个仅有一个环的连通图,则输出YES,否则输出NO。第一行输入两个整数n,m,接下来m行,每行包括两个整数a,b表示a和b之间存在一条无向边。类似下面这个链接做法*********************************************
- 输出每个数左边比它小的第一个数(单调栈)输出每个数左边比它小的第一个数(单调栈)_alex1997222的博客-CSDN博客
- 多重背包**************************************************************
莉莉丝 服务端软件开发 一面
- 删除整数数组中一个数,O(1)空间,O(N)
- http网站的登录(原理)过程是怎么做的?手机扫二维码,PC端浏览器登录成功
- TSAN原理
莉莉丝 服务端软件开发 二面
面试时间30分钟
- 自我介绍
- 介绍一下你本科和研究生学过的课程
- 编译原理和汇编掌握怎么样(我说不熟悉),那你擅长什么课程(网络,OS相对擅长)
- 虚拟地址
- 64位CPU为什么会比32位CPU快
- GPU和CPU区别
- 硬盘传输速度,固态硬盘和机械硬盘传输速度
- 网卡传输速率是多少
- 数据库你了解哪些,介绍一下你mysql掌握的
- 你参加过什么社团么
- 你喜欢看什么书
- 能不能来上海实习,来上海实习学校有事情怎么办,你怎么平衡工作和学习
- 反问环节
西安三星电子研究所 平台软件开发 一面
三位女面试官,面试时间30分钟
- 英文面试:说一下你的爱好(下面是中文的
- Linux IO 栈了解么
- 内核同步机制介绍一下
- 中断处理介绍一下
- malloc和new区别
- 虚拟内存
- 多级页表的作用
- 静态库,动态库区别
- 堆排序,描述一下
- 描述一下项目优化过程
- 反问环节
吉比特 游戏研发工程师 笔试
- 通过投票对团队排名
- Game of Sum - 洛谷 | 计算机科学教育新生态
已挂
小米 整车架构软件开发工程师 - Linux-汽车 笔试
注意字符串提取
#include <iostream> #include <sstream> #include <vector> int main() { std::string input = "1950:10,2000:15,3000:9"; std::vector<int> freq; std::vector<int> loss; std::stringstream ss(input); std::string segment; while (std::getline(ss, segment, ',')) { std::stringstream pair_ss(segment); std::string freq_str, loss_str; std::getline(pair_ss, freq_str, ':'); std::getline(pair_ss, loss_str, ':'); freq.push_back(std::stoi(freq_str)); loss.push_back(std::stoi(loss_str)); } // 打印结果 for (int i = 0; i < freq.size(); ++i) { std::cout << "freq[" << i << "] = " << freq[i] << std::endl; std::cout << "loss[" << i << "] = " << loss[i] << std::endl; } return 0; }
- 1665. 完成所有任务的最少初始能量
银泰百货 C++ 笔试
- 206. 反转链表
- 221. 最大正方形
- 498. 对角线遍历
迈瑞 软件开发工程师 一面
面试时间30分钟
- 自我介绍
- 介绍一下自己经历
- 介绍自己项目,如果你现在来重新写一遍这个项目你会考虑怎么优化
- 你项目中遇到的最大困难是什么,现在有更好的解决思路吗
- 为什么投递武汉,看你是山西人
- 自己的职业规划,你认为什么样的公司是高科技公司
- 反问新人培养机制?1周公司培养,之后是部门培养,会有C++专业考试,根据考试结果划分到不同岗位,有对实时性要求高的岗位,也有驱动开发的,还有QT开发的
竞技世界 游戏后端软件开发 一面
面试时间35分钟
- 介绍一段自己觉得做的比较好项目
- 一致性哈希原理
- Select 和 epoll区别
- 多路复用场景下套接字是非阻塞的还是阻塞的
- 非阻塞条件下,send返回值>0, <0, =0含义
- 使用epoll 的时候 EWOULDBLOCK 或 EAGAIN 错误 区别
- linxu平台下怎么去看进程,以及进程占用的内存
- 怎么去查看一个进程占用的句柄数(记不清了这
- gdb调试的时候怎么去查看程序的堆栈
- 多线程下gdb调试时候,怎么查看线程情况,切换线程
- Linux kill 信号含义懂么,常见信号代表什么
- 20亿个数,找出其中最大的1000个,有什么方法(有内存限制)
- 反问环节业务内容数据中台,所有游戏数据都汇聚到这,缓存系统啥的也会做,QPS晚间能达到几百万
菜鸟 java开发 网络电话面试
面试时间1小时
- 自我介绍
- 我们这边主要工作语言是Java接受么,接受来杭州么?
- 有使用java写过项目吗?
- 就目前这几段经历,你觉得你更喜欢哪种工作,介绍一下实习期间的主要工作。
- 为什么要去做个优化,这个优化对你们有什么好处么?有没有被生产环境实际去使用?
- websocket客户端在哪些情况下要增加重连机制?为什么要去增加重连机制?
- 服务端升级的时候,怎么避免带来给客户端造成影响?
- hashMap的实现底层原理?
- 设计模式有了解吗,说一下你的项目有没有使用过工厂模式
- 有没有使用spring框架
- 微服务了解么,注册中心作用
- 了解VIM编辑器吗
- 对Mysql了解吗,执行索引计划会查看么
- 说一下网站(扫码或者输入密码)账号登录过程登录成功以后,我另启了一个页面,这样页面为什么是保持登录状态呢?(我猜是使用了cookie
- 你对python的了解
- 研究生期间主要做的工作性格预测,中文文本是怎么进行分词,训练的时候有考虑数据的向量维度吗多模态摘要,图片信息是怎么处理的
- 对音视频领域了解吗?webrtc有学习过吗?
- 反问业务内容菜鸟内部的客服系统
淘天阿里妈妈 C/C++研发工程师 一面
面试时间1小时
- 自我介绍
- 个人习惯的C++版本
- 完美转发作用
- 完美转发一般怎么实现
- vector本身存放位置,元素存放位置(栈还是堆上
- linux你有没有遇到过coredump问题,怎么去调试解决
- 2g内存,64位机器,可以申请1T内存吗
- 1T文件中存放着各种字符串,统计不重复字符串个数
- 高考一本分数线确定,就是有1000w考生,假设按照第100w考生的分数作为一本线
- 基数排序
- 多线程,实例化C, B, A; 按A, B, C顺序打印, 线程退出的时候按照C, B, A顺序打印
- 反问环节主要业务内容:C++推荐系统(纯内存,推荐速度要求比搜索引擎更高,ms级别),技术栈以C++/Go为主
已挂
大普微 一面
面试时间30分钟
- 项目经历介绍为主
大普微 二面
面试时间30分钟
- 自我介绍
- 项目介绍
- 单元测试框架,嵌入式环境下做单元测试
- DPDK原理,怎么去用来优化你的项目
- 嵌入式环境下,设计日志系统怎么设计
绿盟 研发工程师-后端 一面
面试时间30分钟
- 自我介绍
- 性能优化介绍
- 内存分析怎么做的,稳定性分析怎么实现的
- tcp协议,http协议有没有自己去实现过,底层包拼接了解么
- 使用Linux遇到coredump情况怎么解决
- 守护进程怎么实现?
- Mysql 的索引,事务,锁介绍一下
- 多线程编程有使用哪些锁
- 反问业务内容?网络流量分析,预防威胁
阿里 智能互联 C/C++研发工程师 一面
应该是简历面,从电话形式改成视频了,面试28分钟
- 自我介绍
- 项目和经历介绍
- 单元测试怎么写的,考虑哪些地方
- 相机软件测试工具怎么开发的
- 最近在看什么书,学习什么,linux内核有学什么吗
- 内核内存分配原理,mmap的原理
- 反问主要业务做智能硬件设备,C++在这边主要做一些跨段的开发,会结合大模型或者AI做一些工作
阿里 智能互联 C/C++研发工程师 二面
电话面50分钟
- 自我介绍
- 项目和经历询问
- 了不了解websocket协议
- RTC了解吗
- 设备重启怎么获知当前时间
美团 到家广告 一面
面试时间57分钟
- 自我介绍
- 接受学习java语言么
- 旋转数组查找值,一次二分解决
- C++是怎么实现多态的
- 各个排序(冒泡,选择,归并,堆排序,快速排序)算法使用在什么场景下,基于比较的排序算法为什么最快是O(nlogn)
- STL容器底层的排序是怎么实现的
- 外部排序怎么做
- 缺页异常
- 异常,中断区别
- linux内核的五个组成部分
- 进程调度算法有哪些,进程的优先级反转是什么
- linux下C++线程怎么是实现的
- 红黑树,二叉平衡树介绍
- B+树,B树区别
- TCP三次握手,四次挥手过程
- 介绍你自己做过的比较好的项目
- 反问环节美团外卖的广告相关,需要使用java语言
已挂
格兰菲 驱动开发 一面
面试时间1小时
- 自我介绍
- 项目和经历仔细询问(面试官从上往下问
- dma_buf
- 中断概念
- 缺页异常是什么
- 内核实现同步的手段
- 自旋锁适合程序有sleep的情况吗
- 虚拟地址,物理地址
- 虚拟内存作用
- C++多态实现
- this指针介绍一下原理
- 成员函数调用delete this有什么问题
- C++新特性介绍一下
- 共享屏幕手撕反转链表
已挂
荣耀 通用软件开发 一面
面试30分钟
- 接受转java么,我们这个部门是负责云服务相关开发
- 虚拟地址
- LRU,LFU实现原理描述
- Mysql 怎么实现数据并发访问的
- Mysql,获取每个用户对应的每个月流量统计综合,按月排序,SQL语句怎么写
- Mysql 索引数据结构
- 为什么B+树的节点,双向链表连起来
- Mysql 左连接,右连接,全连接 区别
- 网络协议分层情况
- TCP头部字段有哪些
- 你是怎么去学习这个新技术
- 工作和学校学习最大的区别
- 反问
哔哩哔哩笔试
- 基本计算器III
- 复原IP地址
- 问答请设计一张用户表存储用户信息,信息需要包含学校信息,并查询注册用户最多的三个学校名称,如果注册用户数相等则都需要输出设计一张表存储用户之间的关注信息,并查询用户A,用户B,用户C共同关注的信息查询被关注数最高的前100名客户,如果关注数相同则根据注册时间进行排序。如何实现高并发的排行查询?请选择合适的中间件,并简单阐述技术方案。为保障首页稳定,需要对接口请求进行限流,请问有哪些常用的限流算法?多节点下如何进行限流?新年晚会邀请100名学生参加活动,如何设计报名系统,使得系统能够满足全国大学生的报名并保证名额不超发