华为OD终端-OC
前贴:https://www.nowcoder.com/feed/main/detail/5c0d6434c20f4382a68250b7ea804af1
前言:当时写上一篇帖子的时候,没想到今天居然能重生复活了。。。。。。(man!)
资面挂了之后,去找了原对接的HR帮忙,看能不能把简历推出,非常感谢之前那个HR姐姐,然后成功联系到了目前的HR姐姐
然后依旧是经典流程:资面->技术一面->技术二面->主管面 ->谈薪->审批->发offer
技术一面(部门面):上来先手撕题目,然后之后是一些八股文和一些比较扩展的问题。
- 先是一道easy题目(判断数字是否为回文串),啪的一下很快啊,我就ac了,然后就解释一下代码思路,分析复杂度什么的。
- 之后,面试官对这问题提出了升级版,(给你一串字符串,找出最长回文子串),我一看,哦,这可以用DP来优化,所以用DP的思想写了个O(n*n)的方案,然后就解释了下代码思路,分析复杂度什么的。这手撕代码的关就算过了。(这题的最优解是Manacher算法,复杂度能到O(n),但是太久了,我忘了。。。。。。。)
- 这里是个还不错的题解链接:https://writings.sh/post/algorithm-longest-palindromic-substring
- 接下来就是八股文掺杂些比较杂的问题了(以下问题不分先后顺序)
- c++和Java是如何管理内存的?
- c++和Java相比,各自的优缺点是什么?
- 看过智能指针的底层代码吗?
- 如果让你实现一个10万qps的点击按钮,你有什么思路吗?(前端->后端)
- 什么是内存溢出?
- 大学期间的绩点怎么样呢?
- 讲一下排序算法,各自的时间复杂度是怎么样的,以及原理是什么。
- 如果让你删除单向链表中的某个元素,讲讲如何实现的?
- 为什么离开之前那个公司呢?
- 一些大学期间的经历(比如:社团经历什么的)
技术二面(跨部门面):一面结束后的第二天
- 先是给了一道easy的题目,(给一个字符串,比如:abcABc12342,让你排序成这种类型,12234abccAB),啪的一下很快啊,我就ac了。讲一下实现的思路
- 接下来就是比较常规的Java八股了
- 说说Java中的集合类
- HashTable和HashMap的区别?HashTable是如何实现线程安全的?
- 说说看JVM的内存模型?
- 讲一下组合和继承,代理。
- 讲一下数组和链表有什么不同。
- 讲一下项目中的某个模块你是怎么设计的?比如表结构什么的
部门主管面:二面结束后的一个星期
- 这一面的话就不会问比较具体的技术问题了,更多是关注以往你是如何解决问题之类比较宏观的方面。
- 讲讲在项目中,你负责的模块是什么?
- 在开发项目的过程中,你遇到最困难的挑战是什么?
- 讲讲某个项目中的某个模块,你是如何设计的?
- 大学中的绩点如何呢?
- 为什么离开之前那个公司呢?
- 从之前的工作中,你学到了什么东西?
面试体验都挺不错的,即使有些问题暂时想不起来,也会进行引导。
接下来,就是谈薪(主管们结束后的3天)->审批(审批大概花了十几天左右)-> offer call