2024年上海华为车BU OD岗位面试经验总结如下,涵盖流程、题目及备考建议:
一、面试整体流程- 简历筛选:1月3日通过筛选,进入面试环节。
- 资格面(1月8日):
核心问题:职业空白期原因、离职原因、期望薪资、技术栈。
特殊情况:因上半年参加过机试且成绩有效,无需重复考试。
- 技术一面(1月17日):
时长:约30分钟(原预期1小时,因手撕代码较快结束)。
流程:自我介绍→项目经历深挖→八股文→手撕算法。
- 技术二面(1月25日):
波折:因系统问题延迟一周,面试体验佳,面试官互动性强。
流程:八股文→手撕算法→Linux命令→OSI模型。
- 技术三面(加面,1月27日):
原因:前两轮定级不一致,需加面。
流程:手撕算法→操作系统→项目挑战→排序复杂度。
- 综合面(2月1日):
时长:10分钟,纯聊天形式。
- Offer发放(2月21日):因春节假期延迟发放。
二、技术面核心题目与解析技术一面- 项目问题:
上一份工作的最大挑战及解决方案。
关键点:需体现问题分析能力、技术深度及结果导向思维。
- 八股文:
poll与epoll的区别:
poll基于轮询,epoll基于事件驱动,支持海量连接。
优化并发量的措施:
示例:多线程/协程、连接池、异步IO、负载均衡。
- 手撕算法:
最长不重复子串:
思路:滑动窗口法,维护一个字符集合,动态调整窗口边界。
代码示例(Python):
def length_of_longest_substring(s: str) -> int: char_set = set() left = 0 max_len = 0 for right in range(len(s)): while s[right] in char_set: char_set.remove(s[left]) left += 1 char_set.add(s[right]) max_len = max(max_len, right - left + 1) return max_len技术二面- 八股文:
int a[sizeof(unsigned long)]合法性:
合法,sizeof在编译期计算,结果为常量。
内存对齐题目:
示例:计算结构体struct {char a; int b;}的大小(通常为8字节,因int需4字节对齐)。
OSI七层模型:
物理层→数据链路层→网络层→传输层→会话层→表示层→应用层。
- Linux命令:
示例:top(系统监控)、netstat(网络状态)。
- 手撕算法:
岛屿数量:
思路:DFS/BFS遍历矩阵,标记访问过的节点。
代码示例(Python):
def num_islands(grid): if not grid: return 0 rows, cols = len(grid), len(grid[0]) count = 0 def dfs(r, c): if r < 0 or r >= rows or c < 0 or c >= cols or grid[r][c] == '0': return grid[r][c] = '0' dfs(r+1, c) dfs(r-1, c) dfs(r, c+1) dfs(r, c-1) for r in range(rows): for c in range(cols): if grid[r][c] == '1': dfs(r, c) count += 1 return count技术三面(加面)- 操作系统:
虚拟内存与请求分页:
虚拟内存通过分页机制实现内存隔离与扩展,请求分页按需加载页面。
- IO多路复用:
示例:select/poll/epoll的适用场景与区别。
- 手撕算法:
字符串插入消分最大值:
题目:给定字符串(如"ABCCBCCC"),相邻重复字符可消去,得分=消去字符数。允许在任意位置插入A/B/C,求最大得分。
思路:
暴力法:遍历所有插入位置,计算得分后取最大值(时间复杂度高)。
优化方向:动态规划或栈结构记录消分过程,但需处理插入后的状态变化。
参考代码(栈实现消分逻辑):
def max_score(s: str) -> int: def calculate_score(s): stack = [] for char in s: if stack and stack[-1] == char: stack.pop() else: stack.append(char) return len(s) - len(stack) max_score = 0 for i in range(len(s) + 1): for c in ['A', 'B', 'C']: new_s = s[:i] + c + s[i:] current_score = calculate_score(new_s) if current_score > max_score: max_score = current_score return max_score三、备考建议- 算法题库:
参考博主题库(Java/Python/C++/JS/C语言):
Java题库
Python题库
C++题库
JS题库
C语言题库
手撕题库
重点练习:滑动窗口、DFS/BFS、动态规划、栈/队列应用。
- 八股文:
网络:TCP/IP、HTTP、IO多路复用。
操作系统:进程/线程、虚拟内存、死锁。
数据库:索引、事务、锁机制。
- 项目经验:
准备2-3个项目案例,突出技术难点、解决方案及量化结果。
- 模拟面试:
通过LeetCode周赛或与同伴模拟面试,提升代码熟练度与抗压能力。
四、注意事项- 时间管理:手撕算法环节需严格控制时间,优先保证思路正确,再优化代码。
- 沟通技巧:遇到卡壳时,可向面试官说明思路,争取提示。
- 心态调整:加面不代表否定,可能是定级需要,保持专业态度。
图:华为车BU面试流程概览通过系统准备与针对性练习,可显著提升通过率。祝面试顺利!