面经 | 华为OD 纯C(小白级)技术面1+面2

个人背景

坐标南京某双非一本 自动化专业,在校基本上只学了一些基础的C语法,毕业比较迷茫,做的基本都是测试或者运维工作,接到笔试邀约后开始准备,大概一个月时间,从0开始学数据结构和算法,水平不高,大神们见谅。

笔试

1.在学校中,N 个小朋友站成一队,第 i 个小朋友的身高为 height[i],第 i 个小朋友可以看到第一个比自己身高更高的小朋友j,那么 j 是 i 的好朋友 (要求:j>i)。 496. 下一个更大元素 I
单调栈问题 100分通过

2.特定大小的停车场,用数组cars表示,其中1表示有车 0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。统计停车场最少可以停多少辆车,返回具体的数目。
简单的字符串处理,遍历一遍 输出就好了 100分通过

3.简单模拟内存的分配和释放 题目描述我写在这 https://leetcode-cn.com/circle/discuss/ELQZKU/
当时时间不够了 没写完 这题是当时的困难题 其实没有什么特别难的算法和数据结构 个人感觉是纯coding能力考察

笔试的时候基本没学什么算法数据结构,可能个人运气比较好,遇到的大部分是简单题目,看了部分面经题目一脸懵逼,果断延后了三周,给自己准备,现在想想还是有点紧,很多东西还是没熟练掌握。

技术一面(1h左右)

个人来说还是很忐忑的,不过面试官很随和,还说是校友,让我放放松。

1.先是自我介绍 balabala...
聊了下之前的工作,但是因为不是开发所以就简单讲了讲,又问了下遇到过的最困难的问题是什么?怎么解决的? balabala...
2.看面经好多都要问计算机网络的问题 但我没学过,所以作罢,开始手撕代码
3.手撕代码 —— leetcode 1019. 链表中的下一个更大节点
刚开始特蠢的,拿到就开始写暴力解... (面试官中间还提示了一下 可以把它当成数组来做)然鹅我就是一个埋头写,写完了正常讲一下思路,指出了程序的一个小毛病 —— malloc完之后要判空(刷题哪写过判空,此处应该是实际生产过程中的严谨吧,学到了),理所当然说这方法时间复杂度太大了,能不能优化下,(面试官第二波暗示,可以先想下,我们来复盘笔试题~)。
4.开始复盘笔试题,其实和这题一模一样,当时是恰好做到了类似的题,记了一下,用起来就忘了...(此时,面试官再次暗示,当时你做这个题还挺有算法思想的,讲下思路吧,还问我 你了解单调栈么?)好家伙,我就开始回忆解题过程,面试官为了让我答出来真是煞费苦心T.T。
大概讲了一下之后时间就差不多了,我提问就问了下大概什么时候有结果,面试官说很快,结束后hr就说让我再好好看看内存的知识和数据结构,准备下二面。

技术二面(1h左右)

又看了几天数据结构,还看了看计算机网络,计算机组成等等,根本复习不完,硬着头皮开始二面。(之前看到二面有的会让写笔试没写出来的题,所以又好好写了一遍笔试第三题)

1.首先还是自我介绍,项目经历,然后开始C语言的八股
2.上来二面面试官先问了一个应该是软件封装相关的问题?设计一个程序交付的时候,如果程序中包含A,B,C 三个不同的功能函数,怎么实现不同客户能够使用不一样的功能? 比如说:甲客户可以使用ABC三个功能,乙客户只能用AB... 这个问题属于是盲区了,当时也没太听懂 没答上来。
3.const 和 #define 的区别 答:const 定义的是变量 #define 是常数 是简单的字符替换
4.分别的起作用阶段 答:#define 编译 const 运行 (应该是编译、运行吧)
5.C语言内存分为哪些区? 答:(当时答得有点乱)应该是代码区、静态区、栈区、堆区吧
6.了解哪些数据结构 答:数组、字符串、栈、队列、二叉树、链表
7.讲一下快排 还有它的时间复杂度 答:随机选一个数小于的放左边 等于放中间 大于放右边 然后左右再递归 时间复杂度最优nlogn 最差n^2
8.讲一下哈希表 还有它的应用 答:(说实话不太用哈希)key值 value 组成的表 应用是能统计查询(不太会用所以答得模棱两可)
9.讲一下什么是二叉树,它能实现什么其他的数据结构 答:从根节点向下递归延伸出左右不相交子树的结构体 二叉树能构造大根堆小根堆(讲的比较笼统,还说错一次说成 桶 @_@ 晕 后来改口说是堆 不知道面试官听没听到)
10.开始手撕代码 —— leetcode 39. 组合总和
有了第一次暴力解的经历,这次我痛定思痛,开始想优化算法,刚开始以为和3数之和那样,整个多指针,但是元素不限次数使用,数目不定,遂放弃;之后想了很久也没想出更好的解法,面试官看了下时间,就让我写了几段伪代码讲讲思路,最后还是 排序+暴力回溯DFS 解的。
11.反问环节:1.面试结果要等多久? 面试官不是我面的那个部门的,所以不太清楚,但结果会尽快上报。(本来以为二面是相关部门面试的,准备了好多个反问问题,都没问出来,尴尬...) 2.代码有没有什么更优解的思路? 面试官答复回溯算法解是没问题的,优化方向可以在约束条件、边界条件上再想想

总结

说实话自己水平确实有待提高,不过就单单准备面试笔试的过程中就已经收获了不少东西了,发出来大家看个热闹就好,还有一个原因就是面经很少有C,很多都是Java、python 所以就想分享一下,供学C的同学小小参考下,目前紧张等待消息中... 希望有奇迹QAQ!!!

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
#华为od##面经##笔经##C/C++##社招##求offer##华为#
全部评论
应该问题不大,就看两次面试定级是否一致,不一致加面一次
2
送花
回复 分享
发布于 2022-04-26 13:59
祝福楼主一波 拿到offer🤗🤗
1
送花
回复 分享
发布于 2022-04-27 11:37
国泰君安
校招火热招聘中
官网直投
我也是纯c,不过投的开发,一面二面已经过了。
2
送花
回复 分享
发布于 2022-04-29 01:36
楼主!可以问一下你准备面试八股使用的是什么书籍吗?!我也是C,刚机试完,应该是可以过的。
点赞
送花
回复 分享
发布于 2022-04-26 16:11
好详细啊,感恩校友,你现在入职了嘛?刚考完机试,有一点紧张,机考完多久发性格测试和一面啊
点赞
送花
回复 分享
发布于 2022-05-15 16:08

相关推荐

14 86 评论
分享
牛客网
牛客企业服务