【元戎面经】软件开发面经大集合(附25校招链接)

24届秋招一面

9.1

出自

0.自我介绍,介绍完说今天只问基础知识

1.python生成器、修饰器

2.python多线程、协程

3.python全局变量和局部变量的区别

4.python lambda用法

5.用没用过数据库?(没有)

6.反问手撕【三数之和】,先跟面试官介绍了一下思路(双指针,分析了一下时间复杂度,然后开始写)总共半小时结束,自我介绍+基础知识大概十几分钟吧。面试官说我和这边不太匹配,建议让我投算法(没顶会我配嘛

8.31

出自

1. 自我介绍

2. 简单介绍一下项目, 然后面试官针对项目问了几个问题(无深挖, 可能因为我的项目是csapp实验, 太简单了没什么好问的3. 问了简单八股, 右值引用和auto, 之前看过别人面经所以答上来了

4. 算法题, 两道都是字符串相关(其实不是, 只是背景是字符串而已, 不牵扯字符串算法), 我最讨厌字符串了。。。 第一题A了, 第二题看的有点懵, 又有点紧张, 但是这个题我肯定是见过的, 但是又菜又紧张就没做出来, 样例通过12/20和大家说一下题意, 说不定大家会遇到:给一个长度为n的字符串str1(1 <= n <= 10000), 还有一个初始为空的str2, 每次你可以取出str1左端点或右端点的字符加入到str2的末尾, 问你最后能得到的字典序最小的str2。我写个O(n^2)的dp, 我觉得正解肯定也是一个这个复杂度的dp

8.29

出自

自我介绍;

实习项目;

代码实现需求coding向上转型?

左值右值?const & 右值

析构函数为什么要加virtual关键字?

copy构造函数为什么要传引用,不传引用会怎么样?

8.28

出自

·make_shared 好处 ·缺点

·引用哪里会用到内存

·矩阵乘法

·进程为什么采用COW

·为什么构造函数中不能为虚函数?

·为什么析构函数要虚函数?

·STL中有没有既不能移动又不能拷贝的?

·了解哪些设计模式?

·vector 2倍扩容为什么不好?

·Google Test

·LRU

8.19

出自

  • 类成员函数后加 const 和 final 关键字分别代表什么
  • 如果基类析构函数没有声明为虚函数会造成什么问题
  • 浅拷贝和深拷贝的区别(举例说明)
  • 重写和重载的区别
  • 静态库 .a 和动态库 .so 的区别
  • 从数据结构角度分析堆、栈、队列的区别
  • map 和 unordered_map 的区别

LeetCode:

  • 无序数组的中位数(类似 <数据流的中位数 No. 295>、要求 O(n) 时间复杂度、提示:快速排序)
  • 分割等和子集(No. 416)

8.9

出自

10分钟项目 

项目跟面试官所在的组不太匹配

做了两道题

1.求一个整数开三次方的值知道用二分 但是写的很烂

 2.给一个整数 分成几个整数的和 求最大乘积找数学规律做出来了

又跟面试官一起用动态规划做了一遍

8.8

出自

* c++有哪些特点

* stl map unordered_map

* stl vector resize-reserve

* 深浅copy

* 怎么学习c++ 读书、leetcode、源码

题目:最长有效括号

7.28

出自

面试忘记带耳机,面试官人很好等了10分钟,全程问的时候我不打不出来的会帮我找接口。其实前面两家公司都是拿c++面试进去转go和java的,但是面试官说你肯定是一直写java,所以c++不熟悉。基本不怎么问我c++,但是我讲了工作,他说java他不是很懂不想问这方面默认我都会了(天啊才学两周)。体验感极好。

1. 自我介绍

2. 介绍一下在sxf的工作和pdd的工作

3. 你刚刚说到java在线debug,你用过的c++的在线debug工作有什么

4. 可能你对c++不熟悉,你了解c++哪些方面(多态,封装,继承,虚函数,智能指针)

5. 操作系统熟悉吗?讲讲内存管理

6. 隔离性->虚拟地址->页表->物理地址

7. 然后说了四个实验(三级页表(问了什么是一级页表),分裂全局内核页表 ,cow,lazy alloc)

8. 如果对应的虚拟地址找不到会发生什么?

9. 会发生缺页,讲了一下lazy alloc的过程实际上就是触发缺页的过程(缺页终端)

10. cow讲一下

11. 讲一下如何进入内核态

12. 手撕代码:给一个数组,找到所有的和为target的集合

7.27

出自

1.自我介绍 聊项目

2.手撕代码

遍历一棵N个点的树,需要选一个起点,遍历整棵树,计算走的路径长度最短为多少。输入: N N-1条长度为1的边,表示为(a,b)输出: 2N<100;N<1000;N<100000;

例子: 1-2 2-3 可能的长度是2和3,所以答案是2.

思路:

在这个问题中,给定的是一棵N个节点的树,每个边的长度均为1。问题要求找到一个起点,通过这个起点遍历整棵树的路径长度最短为多少。

一棵树的遍历问题中,如果所有边的长度相等,那么遍历全树的最短路径长度就等于2*(N-1) - h,其中h是树的高度。因为在遍历过程中,每一个节点(除了根节点)都需要被访问两次(一次进,一次出),所以总路径长度至少是2*(N-1)。然后我们可以减去树的高度h,因为在从根节点到最深的叶节点这段路径中,每个节点只被访问了一次。

所以,为了得到最短的路径长度,我们需要选择一个使树高度最小的节点作为起点。这个节点就是树的中心点,也就是树的直径的两个端点。树的直径可以通过以下步骤计算:

1. 从任意一个节点开始,进行深度优先搜索(DFS),找到距离这个节点最远的节点A。2. 从节点A开始,进行深度优先搜索,找到距离节点A最远的节点B。那么,节点A到节点B的距离就是树的直径。3. 选择节点A和节点B中的任意一个作为起点,遍历整棵树,就能得到路径长度最短的结果。

这个算法的时间复杂度是O(N),因此对于N<100, N<1000, N<100000的输入,都能在可接受的时间内得到结果。

7.27

出自

  • 自我介绍
  • 经纬恒润实习经历
  • 对AutoSAR的了解
  • DOIP诊断中相关协议的了解
  • 对C++的了解
  • 两道题
  • C++多态,根据多态扩展出override、virtual等关键字的作用以及底层逻辑
  • 三大拷贝:默认拷贝、复制拷贝、移动拷贝,并结合vector编写相关代码,产出结果
  • 反问

7.26

出自

在看到元戎秋招开了,就立马投了,不知深浅投了规划算法工程师,秒挂。

7.19通知软件工程师给面试机会约了7.26面试

一面(7.26):

属于是交叉面试,面试内容是c++的基础 和 coding

+ 常用的stl

array 和 vector 的区别、map 和 unordered_map 的区别、map set vector的区别

+ 智能指针

unique_ptr:独享所有权、是一个仅能移动的类型、析构时自动销毁,场景:为了防止内存泄漏的产物

+ 继承的概念,多态的概念

+ 构造函数、析构函数

这里没聊明白,应该按照python __del__, __init___, __str___ 等扩展开来

+ c++ 编译流程

预处理(Preprocessing) -> 编译(Compilation) -> 汇编(Assemble) -> 链接(Linking)

这部分面试前没复习到,白给了

coding:

矩阵的最大联通块问题,手撕各种方法

总结:挂的概率 > 70% C++的基础能力基本为0,coding不难,还好面试官是做算法的,没有问得那么深入,不至于太过尴尬。

7.18

出自

1.自我介绍

2.华为HPC高性能软件迁移这个项目是什么?做了多久?

3.博客  开源

4.做题 搓生产者-消费者(五十分钟 强度主键递增 需要加强)

5.channel的哪些情况会阻塞(读阻塞 写阻塞 还有没有其他情况)? 往nil的channel读写是会阻塞还是会panic?(都是阻塞) 哪些情况会panic?

6.git命令 git rebase和git merge的区别? 你用的哪个  推荐用哪个? git cherry-pick

7.一个进程hang住了 该怎么排查问题 (1.看系统资源 2.看日志 3.ps看进程状态 4.中间件 5.调试工具 6.代码审查)

8.为什么握手是三次 挥手是四次

9.分布式系统了解吗?raft的心跳是什么?raft选举竞争问题怎么解决(心跳时间加上随机值)

10.K8S了解的多吗?安装K8S集群的时候那些镜像包是怎么安装的?

11.debug工具(可以说说pprof和trace的 忘记说了)

12.数据库如何实现事务,你如何实现事务的原子性

13.etcd知道吗?底层实现知道吗?(不知)

14.你现在在哪?了解我们公司吗?

Q & A 

1.面试表现:代码能力需要加强

2.您的日常工作 你想走什么方向

7.14

出自

40min, 以为会问些c++八股和手撕,结果全是问的项目底层...没有什么参考价值但还是记录一下,实验室项目里面用了容器,然后全程就是容器原理,容器通信原理。       开始还好,后面就开始问命名空间怎么创建,我回答clone函数中有一堆flag,选择对应命名空间的flag就可以创建一个进程,并且运行在这些命名空间中,然后接着问clone函数里是怎么实习命名空间的,这个不知道。

       然后问我知不知道tun/tab,隧道大致我知道,用于容器跨主机通信的。然后问原理,大致网络原理我知道是进行二次报头封装,然后就问我怎么自己去实验这个东西,给了个通信场景让我说说怎么实现,答不出来,然后又问v2ray用过吧,这个东西让你来实现怎么实现,又答不出来,面试官挺好,还给了我台阶下,说了两个步骤,问我第三步怎么做,但我太菜了确实不知道,没有怎么去看过这个。     后面基本就是当场给我上课了,大概意思就是说不要只会用linux上的一些东西,要知道怎么去实现。后面本来还想讲讲iptables的,但看我tuntab都不会就没讲了,提前结束了,(其实iptables我还是知道一点的,但也不是很深,就没敢提)

7.14

出自

项目(25mins)

1. 进程间通信方式

2. 说说C++多线程

3. C++异步

4. 用多线程实现处理多个文件中的数据,并求和(不会

5. const

6. C++的数据结构有哪些

7. 手写用两个栈实现队列

7.14

出自

 ●先简单问了下项目,主要还是问八股

    ●仔细的问了B+树/B树/红黑树/哈希表,包括怎么插入删除,什么场景下使用哪个,之后还延展到LSM tree

    ●智能指针了解吗?说一下weakedptr使用场景?

    ●说一下enable shared from this

    ●右值引用,move,移动构造

    ●tcp三次握手,accept对应三次握手中的哪次

    ●高性能的web服务器怎么实现的(因为简历中提了一嘴)

    ●io uring了解吗?说说proactor模式

然后留了30分钟写了两个题,一个LRU,一个快排求第k大的数

7.13

来自

聊了大概十分钟实习项目,然后进入八股环节,感觉面试官特别喜欢问实际场景中的应用

  • golang的channel是什么,应用场景是什么,有什么分类,底层是什么
  • golang的GC了解吗,说一下
  • python生成器和迭代器,平常使用的场景是什么
  • 对协程的一个理解,平时使用的场景是什么
  • tcp建立连接后,如果没有收到服务端的消息,客户端会做什么
  • 建立TCP连接有几种状态
  • 千万级大规模数据读写,从数据库,缓存,主从集群,分库分表的角度去讨论

算法题:重排链表

7.12

来自

1、自我介绍

2、对简历上的项目进行介绍

3、C++ struct 和 class的区别

4、指针和引用的区别

5、为什么模板类写在.h中,不在.cpp中

6、一个程序怎么从文本文件编译成可执行文件

7、链接分为动态链接和静态链接。那有什么区别?

8、排错题:两道涉及类的继承编程题:n×m大小的矩阵,顺时针打印出来。

7.12

出自

C++与C的区别

RAII机制

vector底层原理、扩容怎么实现的

了解过模版吗?模版重载与函数重载

C++11新特性用过哪些

智能指针相关

为什么使用make_shared、make_unique,而不是使用原生指针

编程题:岛屿数量、最大面积

24届秋招二面

8.30

出自

  1. 实习项目
  2. 有没有好的方法平衡CPU性能和CR
  3. 场景题·webserver项目
  4. 什么是死锁?
  5. 怎么判断是死锁还是进程(线程)长时间的计算?
  6. std:thread 和 p_thread ?
  7. 内存对齐·内存对齐中,不同设备供应商提供不同的struct,不同的struct之间的彼此嵌套,如何解决这个多个struct之间的嵌套的内存对齐的问题
  8. void request()·int query()查询前五分钟request调用的次数·
  9. 难点:长度溢出,以及unordered_map

7.31

出自

epoll和线程池是如何合作的?什么时候用epoll,什么时候用线程池

工作线程处理的是什么?

有没有可能多个线程处理同一个fd?

ONESHOT什么作用?

如果访问会发生什么?

定时器的升序链表是什么?谁来排序?

数据库连接池是什么?与RAII机制有什么关系?

发起的查询如何与连接池发生关联

拿不到连接会怎么样?

阻塞住?阻塞是如何实现的?

vector原理

vector如果放的是很复杂的对象的话,还能拷贝吗?

移动是什么

移动语义是如何实现

deque原理

能不能把vector当成deque来用

锁是如何保证线程安全的

原子操作是什么东西

锁能保证在不同的CPU看到的东西是一样的吗

内存屏障

为什么使用快速排序?相比于其他排序算法的优势在哪里?

归并排序为什么需要临时空间?有没有可能不需要?

编程题:模版类实现固定大小的队列,不能使用STL数据结构,T没有构造函数怎么办

7.28

出自

面试官说这一面是C语言面试(从一面面试官那了解到这个组是元戎三大算法组之一的软硬件部门,所以需要有硬件背景的),全程怼着项目问,我的项目都是嵌入式相关的。问了50分钟,后来给了15分钟写一个C语言的题,双向链表,拿链表结点招结点值的,补充宏定义,没搞出来,事后一想直接强转就行……。面经后面再补充。

  • 自我介绍
  • 实习时用的是什么单片机(英飞凌TC397,忘记了,面试官提醒的才想起来,菜的抠脚)
  • 项目1实现了哪些功能
  • STM32用的是哪一款
  • 用的是HAL库还是什么?开发工具是什么?
  • IIC协议时序逻辑?(面百度就差点挂在这,后面又看了看,说的还挺顺利)
  • 互补滤波算法是怎么实现?
  • 单片机死机是如何解决的呢?
  • PCB也是自己画的吗?
  • 对以太网协议栈的了解
  • TCP和UDP
  • 计算机网络中MAC在哪一层?TCP在哪一层?
  • Autosar中的分层情况?
  • EthSM主要的内容
  • UDPNM的主要内容
  • TC397中如何定义任务,任务间隔是多少
  • 单片机中,发生中断是如何找到中断函数的
  • 中断函数以什么方式写入到启动文件中断向量表中
  • rtos中如何定义一个任务,需要传递哪些参数(感觉面试官对这个地方也不是太了解)
  • 实时操作系统和Linux的区别
  • 说一下struct关键字,内存对齐和不对齐,用的是什么关键字
  • static关键字的作用
  • 什么是中断,单片机怎么知道发生中断的
  • 写题,没写出来,面试官让我了解一下如何从结构体地址获取结构体成员

总结:除了题目没写出来(硬伤,太久不用C写题了,看到的时候一脸懵),其他答得都挺好的,写个面经求好运!

7.26

出自

面的稀巴烂,忙着背八股了语言的基本用法忘光光,还是发发面经攒人品,希望最近投的都能约面。

- 自我介绍

- 数据库为什么要加索引,怎么设计优化索引,怎么知道数据有没有走索引,走的那个索引。

- 给出一个静态/动态变化的数组,如果需要精确查询怎么查找,如果需要范围查询怎么查找

- TCP为什么要三次握手,两次有什么问题

- TCP的拥塞控制

- 直播服务应该用TCP还是UDP

- 问kafka怎么使用的,我说只是简单使用后就没追问底层原理了

- 问返回状态码怎么包装的,单纯用http状态码还是返回具体信息,问怎么区分超时错误是网关还是后端

- gin的中间件(没答上来),跨域(没答上来)

- 问context,用context写一个超时中断(没写好)

- 用golang写一个并发打印(又没写好)

- 问了实习的一些项目

- 写一个机器复用分配的场景

面试官基本上是看你具体的能力出场景题,在能力范围内反复拷打,循循善诱,水平很高。虽然我面的很烂但体验很好

24届秋招三面

8.17

出自

  • 面试官部门介绍(车载OS组)
  • 自我介绍
  • 实习工作内容
  • 怎么做CI
  • 课题方向
  • 项目内容
  • TCP/UDP
  • 线程进程
  • unordered_map和map
  • 一道Hard,设计数据结构(太菜,做了半小时,靠着面试官提示做出来了)

有一说一,元戎面试虽然难,但是面试体验一流。面试官都很友好,遇到不会的地方会一点点提示,简直都是神仙。

最后问了面试官大概什么时候出结果,说这个要问HR,看来就只能等着了。

一二三面题目总结起来就是,一面CPP,两个题,正确率比较低;二面C,双向链表问题,最关键的代码没写出来;三面CPP,设计数据结构,这个倒是做出来了,就是写的比较慢,写到最后才发现之前的代码思路错了,最后重写了一遍【哭】

24届秋招四面

8.31

出自

  • 自我介绍
  • 项目介绍
  • 项目的repo地址,尴尬的是我还没提过pr
  • 博客还有在写吗
  • 对自己的定位
  • 考虑做算法开发吗
  • 手撕智能指针
  • 反问与被反问
  • 读过的书介绍一下
  • 有没有了解过openai和特斯拉现在的工作
  • 团队配合,如何解决技术难题
  • 平衡工作时间
  • 华为也在做智能驾驶,区别
  • 多久会出面试结果

23届及以前软开面经

春招一面(3.20)

春招二面(3.14)

一二面(11.17)

二面(10.26)

一二三面(9月24号)

一面(9月19号)

一面(9月17号)

二面(9月14号)

不知道多少面(9月6号)

一面(9月5号)

一面(9月2号)

一面(9月2号)

一二三面(9月1号)

一面(8月26号)

一面(8月25号)

一面(8月23号)

一二三面(8月22号)

一面(8月22号)

一面(8月17号)

一面(8月10号)

一面(7月28号)

一面(7月27号)

一二三四面(7月1号)

一面(4月8号)

一面

其他岗位面经汇集

感知算法(内暂无元戎面经,但是可以作为参考)

大数据

嵌入式

【规划算法工程师】

二面(7月20号)

一面(7月14号)

一面(7月14号)

【slam算法工程师】

一面(21年8月25号)

一面(21年10月14号)

25届校招投递地址

点我,投递的同学,在下方回复:名字简称+地址方便确认是否投递成功,例如:xyz + 深圳

#元戎启行##软件开发##秋招##面经##我发现了面试通关密码#
全部评论

相关推荐

投票
半导体fab厂 ee 10000*13
点赞 评论 收藏
分享
7 64 评论
分享
牛客网
牛客企业服务