华为OD面试记录,base南京
2022年12月西安华为OD一个研发在boss上邀请我参加华为公司的笔试,并把我拉进一个微信群,里面都是华为公司的OD或者正式员工。开始一段时间会每天发算法题让我写,一开始觉得很有难度,渐渐地在我刷很多题之后越来越得心应手了。
但是我一般在准备充足之后才会考试,最后拖到了2月10号参加了考试,400满分。
接下来是面试:
2月13日上午 一面 面试官是中级开发,聊的还可以,最后知道这次的结果是D2水平。
2月13日晚上 二面 面试官应该是高级开发甚至是架构师,因为年龄比较大(气场也强),算法题不难,难在如何优化,面试结束才想出来;面试过程也不理想,这次结果是D1。
二面算法题:
/** * 从一个字符串中找到第一个不重复的字符,返回它的索引。如果不存在,则返回 -1。 * 案例: * s = "qwert" * 返回 0. * s = "testengine", * 返回 2. * s = "helloolleh", * 返回 -1. * s = "abababe", * 返回 6. * 注意:字符串中只会包含小写字母。 */
一开始是这样写的,很快啊!很容易就想出来了。时间复杂度是O(N^2)
public int findIndex(String s) { for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (s.indexOf(c+"") == s.lastIndexOf(c+"")) { return i; } } return -1; }
接下来让优化:
没有写出来,面试过程并不愉快(先问问题再写的算法题),所以没好好想,面试刚结束就有思路了。
public int findIndexNew(String s) { int[][] or = new int[26][2]; //一开始优化的时候用的是一维数组,面试结束后想到二维数组 for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); or[c-'a'][0]++; or[c-'a'][1]=i; } int len = s.length(); int res = len; for (int[] arr : or) { if (arr[0] == 1) { //最小索引 res = Math.min(arr[1], res); } } return res == len ? -1 : res; }
2月16日晚上 三面(业务面试加面)高级开发(领导级别的),问的问题没有上一个面试官角度刁钻,结果还不错,最终定级D2。
2月20日 晚上资格面试 没有通过,没有准备过,没有表现出自信以及流畅的语言表达,挂了。
转而面南京的岗位:
2月27日 晚上资格面试 顺利通过。
3月3日 主管面试 问了之前的工作经历 顺利通过。
之后就是银行流水以及其它的审查阶段
3月24日 收到offer。
接下来需要去体检、准备入职的资料。
总结:
很坎坷,一直提心吊胆的。
我第一份工作在北京,干了两年零九个月后,家里出现意外离职回到郑州,顺便在郑州找了一份工作,工资很低,没有准备过面试,图个离家近。郑州这垃圾就业环境以及工作氛围太让人失望了。
结束!
已经入职8天了,本部门加班有点重,习惯就好了,想学一门技术的推荐来,已经是大佬就不推荐了,而且大佬也不需要。
有想来华为od 的推荐HR小姐姐**************
我能顺利进od 全靠她了!!
#华为##华为OD#