当前位置: 首页 > 面试经验 >

华为OD-前端面经-D3

优质
小牛编辑
81浏览
2024-03-15

华为OD-前端面经-D3

  • 背景:二年前端开发经验,211本科软件工程,找的前端岗位base杭州,在牛客寻到的栗栗姐。
  • 一、机试

机试共三道算法题,分成两部分。其中第一部分是12小题,第二部分是第3题。不能同时做两部分,必须先提交一边,才能开始另一边。所以要安排好时间。

算法题提前准备,刷leetcode常见题型,熟悉你所使用的语言的常用字符串操作。还有推荐看CSDN上的华为题库(有可能会考到原题),感谢hr栗栗提供的笔试资料,非常有用。

1、模拟队列

题目比较长。提供n个执行者和m个任务,一个队列,给出每个任务的入队时刻和所需执行时间。如果队列满了,抛弃掉队列里最老的任务。执行者一旦空闲就会去队列里去最老的任务。当队列满的时候,如果同一时刻既有任务完成又有任务入队。则先从队列取出最老的任务,再将新任务入队。

输出最后结束的时刻和被抛弃的任务数量。对所有输入的时刻t,都有1<=t<=1000

个人思路是 遍历1-1000时刻模拟过程,代码比较复杂。最后通过90%

2、射箭比赛,每个选手有编号,每个选手射箭若干次,将每个选手的成绩取出最好的3个累加即为该选手的最终成绩,如果选手射箭成绩小于3次不统计该选手成绩。将选手最终成绩降序排列,输出选手编号。若成绩相同,编号大的排在前面。

输入三行,第一行一个整数,代表所有射箭次数; 第两行,依次给出每次射箭的选手编号;第三行,依次给出每次射箭的成绩。

简单题,统计并排序就行了。最后通过100%

3、leetcode原题 402. 移掉 K 位数字 题目描述基本相同

华为od题库原题 https://renjie.blog.csdn.net/article/details/130792891

给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。

例如 num="2615371",k=4, 最后输出 131。

思路: 自己在草稿纸上从简单的情况模拟,来找到规律。

规律如下:每次删除第一个满足str[i] > str[i+1]的下标i,重复N次。

如 2615371 -> 215371 -> 15371 -> 1371 -> 131

如果某次遍历如果没找到 i,那就是删除最后一个。

最后输出的时候注意删除前缀0。

可以用stack堆栈优化,只用一次遍历。

最后通过100%(没用stack堆栈优化也全通过了)

  • 二、技术一面

先是自我介绍+项目经历,项目这部分提前准备好怎么讲,想好可能会被问的问题。会根据你的项目提问,所以可以一定程度上诱导面试官问向你擅长的方向。

项目问完后是几道常规前端基础知识

了解原型链吗?怎么创建一个没有原型的对象

通过new创建一个对象的过程

css问题,高度坍塌原因和解决方式

sessionStorage和localStorage的区别,存储大小限制多少?

什么是闭包?闭包的用途?

……

最后是算法题(要在本地ide上写并运行,提前准备好环境):************************************************* 每日温度

  • 三、技术二面

同样自我介绍+项目经历,项目环节特意提了让我讲遇到的难点。然后是八股文问前端面试常规问题,如

前端安全问题XSS和CSRF

防抖节流,定义以及使用场景

列举几个排序算法(追问了从一堆数中多次取出最大值的方法(最大堆),可能是因为我说到了堆排序)

……

最后也有一道算法题,非常简单,青蛙跳台阶***************************************************************

  • 四、技术三面(前2轮定级不一致,加面一轮技术面试)

由于一二面面评不一致我还需要加面,还是一样讲项目问项目,然后是八股文问前端面试常规问题

前端性能优化,几个指标,performance

前端跨域请求问题,项目中遇到的如何解决

js事件循环,宏任务微任务

因为我是科班,有问我js中对象/map的存储原理之类的

git操作,问了开发期间其他人有提交过代码,自己合入要怎么操作,我自己答了git rebase解决冲突后合入。然后还问了git rebase的其他用法。(这题按自己正常开发使用git方式答即可)

……

最后算法题是比较简单的动态规划题,******************************************* 不同路径

技术面试总结:大部分时间是在 1、讲项目和根据你所讲的项目提问相关前端问题,也就是抓着项目问问题 2、做算法题。 而这两块都是能提前多做准备的,尽可能地充分准备好。3、栗栗在综测后会给你发技术面试攻略,可以参考下

  • hr面:

自我介绍

上一份工作的经历/做的项目内容、自己的职责

工作地选择的原因

为什么选择来华为

加班情况

离职原因

期望薪资等

  • 主管面:

电话面,普通聊聊,比较随和

当前情况

换工作原因

上家公司工作内容,团队人数,承担角色

我作为前端的工作研发流程(或者说一次需求流程)、自动化手段、交付节奏、代码重构

为什么从事前端

团队协作代码code review怎么做的

聊了些对angularjs、vue、react等一些想法

平时怎么学习、算法怎么准备的

反问

  • 总结

最后就是全部面试通过后等审批环节和发offer后准备材料了。要十分感谢hr栗栗的帮助,从头到尾持续帮我去催进度,最后也也如愿以偿的快速收到offer。所以如果对华为 od 感兴趣的欢迎来找她!他会根据你的技术栈,个人兴趣等给你推荐,让部门和你电话沟通再决定是否开始面试,不会盲推。很好的HR,也很好说话,很温柔,回复不及时还会和你说抱歉的那种。

 类似资料: