设计模式

1.创建型模式**–>**对象怎么来

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

 **工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式**

2.结构型模式**–>**对象和谁有关

这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。

​ 适配器模式、桥接模式、过滤器模式、组合模式、装饰器模式、外观模式、享元模式、代理模式

3.行为型模式**–>**对象与对象在干嘛

这些设计模式特别关注对象之间的通信。

​ 责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、空对象模式、策略模式、模板模式、访问者模式

4.J2EE模式**–>**对象合起来要干嘛

  • MVC 模式、业务代表模式、组合实体模式、数据访问对象模式、前端控制器模式、拦截过滤器模式、服务定位器模式、传输对象模式

设计模式六大原则

  • 开闭原则:实现热插拔,提高扩展性。
  • 里氏代换原则:实现抽象的规范,实现子父类互相替换;
  • 依赖反转原则:针对接口编程,实现开闭原则的基础;
  • 接口隔离原则:降低耦合度,接口单独设计,互相隔离;
  • 最少知道原则:功能模块尽量独立;
  • 合成复用原则:尽量使用聚合,组合,而不是继承;

七大原则记忆口诀:开口里合最单依

开:开闭原则

口:接口隔离原则

里:里氏替换原则

合:合成复用原则

最:最少知道原则

单:单一职责原则

依:依赖倒置原则

精华问题

  1. 算法题 ,给定一个数组和目标值,求数组中满足两数之和等于目标值的下标对,若不存在满足条件的对则返回 [0,0]。题目不难,主要考察边界值的处理。

  2. 一个长度小于10的字符串 全是大写字母 有重复 问重新组合后 有多少种可能的组合(限时20分钟)

  3. **算法题**,最长回文子串

  4. 输入一个数 输出 这个数的行数的杨辉三角

  5. 无线K倍删除 给你一个字符串和一个k,如果有k个连续的字符,就将其删除并把原字符串合并,一直进行到删不了为止。 示例:输入 dbbbdcccdaa 3 输出 aa

  6. 手撕代码:二分查找

  7. 然后手撕代码,二叉树相关

  8. 最近在看什么书

  9. 是否会在github上寻找一些相关项目学习,或者在stackoverflow上回答问题

  10. 华为的了解,怎么认识华为的企业文化 。怎么看待奋斗者文化啊

    ​ 华为是全球领先的信息与通信技术(ICT)解决方案供应商,专注于ICT领域,坚持稳健经营、持续创新、开放合作,在电信运营商、企业、终端和云计算等领域构筑了端到端的解决方案优势,为运营商客户、企业客户和消费者提供有竞争力的ICT解决方案、产品和服务,并致力于实现未来信息社会、构建更美好的全联接世界。

    ​ 华为消费者业务产品全面覆盖手机、移动宽带终端、终端云等,凭借自身的全球化网络优势、全球化运营能力,致力于将最新的科技带给消费者,让世界各地享受到技术进步的喜悦,以行践言,实现梦想。

  11. 怎么看待华为最近遭受美国打压这一现象

  12. 问怎么看待华为的加班

  13. 讲一个自己坚持了很久的习惯、行为等

  14. 自己在某一个项目(比赛)中扮演的角色(比如是否是自己组织的)

  15. 面对这份工作你的优缺点

  16. 问了问竞赛经历

  17. 你最有成就感的事情。

  18. 你遇到困难是怎么解决的。

  19. 最长公共子串

  20. 排序算法有了解么,回答说快排最了解

1.面经01

来源:华为数字化IT应用工程师面经

作者:MathStarry
链接:https://www.nowcoder.com/discuss/618526?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack
来源:牛客网

3.10 机考

三道算法题

1、给定两个字符串,对第二个字符串至多改动k次,使第二个字符串为第一个字符串的子串,返回满足要求的改动方法数。

2、 第一行输入两个数字N,K,表示有N个数字以及一个整数K,第二行输入空格隔开的N个数字,要求取连续的若干个数字使得他们的和恰为K的整数倍,问有多少种取法?

3、 有N个广播站,相连的广播站之间可以互相传递广播,给定一个邻接矩阵,相连的广播站之间矩阵值为 ‘1’,否则为 ‘0’,问最开始至少需要给几个广播站广播,才能使所有广播站都收到广播?

3.15 一面(10:00-10:30)

5、 算法题 ,给定一个数组和目标值,求数组中满足两数之和等于目标值的下标对,若不存在满足条件的对则返回 [0,0]。题目不难,主要考察边界值的处理。

6、最近在看什么书

7、是否会在github上寻找一些相关项目学习,或者在stackoverflow上回答问题

8、对华为的了解

9、怎么看待华为最近遭受美国打压这一现象

10、为什么没有留在实习的公司

3.15 二面(11:12-11:51)

2、问实习项目,业务需求,项目如何服务与需求

4、 算法题最长回文子串

3.19 三面(15:17-15:44)

2、自己在某一个项目(比赛)中扮演的角色(比如是否是自己组织的)

3、讲一个自己坚持了很久的习惯、行为等

4、对华为的了解,怎么认识华为的企业文化

2.面经02

许愿华为Offer,附数字化IT应用工程师面经

作者:Poison•
链接:https://www.nowcoder.com/discuss/619473?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack
来源:牛客网

业务应用与IT装备部——数字化IT应用工程师

3.13早上一面 不到40分钟

  • 询问会哪些编程语言 回答Java、Pyhton、C++

  • 追问 他们的面向对象特点(封装、继承、多态 面试官说讲一讲自己的理解 不用背概念)

  • 讲一讲线程

  • 追问 线程同步机制

  • 追问 讲一讲线程实现方式

  • 讲一下你的项目 以及你在项目中的分工(简单介绍 没有深入问细节

  • 讲一讲竞赛经历

  • 询问成绩、专业排名

  • 面试官说来华为压力大

  • 最后的手撕代码环节 一个长度小于10的字符串 全是大写字母 有重复 问重新组合后 有多少种可能的组合(限时20分钟)

3.14早上二面 不到30分钟

  • 自我介绍
  • 询问Java语言的特点(封装、继承、多态,又问了抽象)
  • 说到封装的权限修饰符又追问default不同包能不能访问
  • 询问项目 和一面一样 介绍+分工 没有细问下去
  • 询问竞赛经历 具体的其中一个竞赛 担任了什么角色
  • 有没有拿过奖学金
  • 询问成绩、专业排名
  • 手撕代码环节 输入一个数 输出 这个数的行数的杨辉三角(面试官说非常简单 限时15分钟)

3.14下午三面 40分钟一秒不差(不愧是总监)

  • 询问大学生活(社团有没有、社会实践有没有、科研情况)
  • 询问成绩、专业排名
  • 询问有没有考研
  • 询问有没有入党(没)想不想入党(莫非是想当我的入党介绍人😧)
  • 询问家底(生活费每月多少、父母干什么的)
  • 看到有软著和专利又问了问具体的项目 不过不是技术细节 更多的是项目做到什么程度、用什么框架、怎么落地、用了多久、都有谁参加、你在项目中什么角色、遇到什么问题
  • 问了问竞赛经历
  • 问怎么看待华为的加班
  • 介绍了岗位的工作内容(好像是对内服务部门,这块没听明白)
  • 介绍华为技术路线和管理路线 问我想走哪条路

3.面经03

作者:Citrus_2333
链接:https://www.nowcoder.com/discuss/621820?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack
来源:牛客网

3.20

一面:

自我介绍

笔试复盘

根据用的语言问了基础问题

还问了其他的但是不会,面试官人很好还跟我讲23333

然后就手撕代码,不难枚举就行,而且面试官还给提示。但是见鬼的没调出来 = =,面试官人真的很nice,安慰我说没事思路确实是对的然后抬手给我过了。

二面:

速度贼快,说是一面问过了简单点不问了

然后项目问了一点之后就火速撕代码了,说是本科生不给难题了,真的就异常简单,python 5min就写完了

因为上面进行的太快了于是进入了反问环节,然后问了考研和工作的看法,根据这个还给我了个人的意见,又是一个非常nice的面试官

3.23 主管面

好家伙今天可能赶上主管加班了从上午等到了下午,等麻了简直

但是不得不说主管也非常和蔼可亲

就是唠嗑:项目分工啊,如果矛盾怎么办啊,想做啥方面啊,怎么看待奋斗者文化啊,去年的目标是啥,考研啥的

然后也没反问,快乐886了

但是真的今天等了一整天,真的等的我身心疲惫

4.面经04

作者:牛客913569319号
链接:https://www.nowcoder.com/discuss/620618?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack
来源:牛客网

3.24 综面

感觉有点压力面那味了,一点也没有和蔼可亲笑眯眯好不好,不苟言笑,全程我最深刻的印象就是举个例子。。举个例子。。举个例子。。

学过最难的科目,怎么学习的,举个例子

看过的算法书,有什么算法是一直贯彻在学习和工作中的,举个例子

去年最大的目标是什么,怎么实现的,做了什么,举个例子

项目小组中有没有分歧,怎么解决的,举个例子

项目中用到的具体算法,怎么理解的,举个例子

等等等等举例子。。。。。。每个问题基本都会要回归到例子来体现

如何看待华为奋斗者文化

面对这份工作你的优缺点

-——————————————————————————————————————————————————

目前进度:

3.10笔试,3.13 性格测试 3.19 一二面 现等通知。。。

过了几天了,记性不是很好,只能记得个大概,大家有问题可以评论区找我。

笔试

笔试的题目前面已经有人发过了,我就不发了。

不过我还是想问问是我运气比较好还是华为的笔试确实不是很难。

第一题暴力字符串匹配AC

第二题暴力过70%

第三题图遍历AC

一面

项目相关,我的项目是手势识别目标检测。

问到了数据集和数据处理,模型,效果,具体的改进。

c++相关

python相关

static关键字

重载和重写

印象里操作系统和计网没有涉及

手撕代码:无线K倍删除

给你一个字符串和一个k,如果有k个连续的字符,就将其删除并把原字符串合并,一直进行到删不了为止。

示例:输入 dbbbdcccdaa 3 输出 aa

我用栈实现的,最后还有一点小bug,面试官还是让我过了。

二面

项目相关,可能面试官也是这个方向的?问的问题比较多

主流的目标检测算法,模型的选择,有没有横向对比过其他模型,有没有对比过机器学习和神经网络

项目框架大概是怎么样的,项目卡进度了怎么办,调参一直调不到想要的结果怎么办,有没有尝试多种模型实现。

你最有成就感的事情。

你遇到困难是怎么解决的。

手撕代码:二分查找

总体感觉

面试问题只记得部分了。。

首先感觉华为面试人很多,大家都在排队,面试官也很忙,每天干完活还得面试。

一面的面试官比较高冷,像是个提问机器,但是人也很好,手撕代码会提示思路,不会把你忘不会了问。

二面的面试官感觉就比较聊得来,聊了些有的没的,全程笑嘻嘻的,基本上都是项目相关。

主管面

主管面本来是约了20日18点的,后来公司打电话推迟到今天了。

先说一下面试官,我感觉面试官跟一面的长得一模一样。(一面的时候,面试官那边信号不好,把视频关了)

先自我介绍。

面试官问了我项目项目的角色,我的成绩排名,你最紧张的一件事是什么,最有成就感的一件事,你对于成就感的定义是什么。

你的性格是怎么样的。你的最好的朋友是谁,你最讨厌的一个人是谁。你大学参加了什么活动。你有一件事情,你的计划是什么。

在大学期间你感觉你比别人努力吗。你上大学时候的目标是什么?

反问环节:

1.华为员工的一个成长历程是怎么样的?

面试官:首先有两周的一个文化体验,然后有导师带,六个月后转正答辩。

2.华为的部门之间有壁垒吗?

面试官:基层这边的话,基本上是比较开放的。

最后面试官补充问了一个问题,你笔试成绩不错,是有什么诀窍吗?

我:笔试之前,我会针对性看一些帖子,看看华为比较喜欢考什么。

然后就886。

一面

先自我介绍,然后说我在大学学了什么课,然后介绍自己参加的比赛项目

然后面试官问了我大学成绩排名,GPI,四六级,大学参加了什么活动社团之类的。

然后就问基础了。

面试官:说一下接口和抽象类的区别。

这个问题答案大家自行网上搜。

面试官:说一下Cookie和Session有什么区别。

这里贴一下 Guide哥的面试知识点

面试官:说一下List,Set,Map的区别。

这个问题我昨晚突击看 Guide哥的Java容器只是简单看了一下,没有准确答出来。

面试官:说一下HashMap的实现。

这里 Guide哥也有,好吧,我沦为替Guide哥打广告的工具人了。

最后是代码,主要是给你一个IPv4或者IPv6地址,让你判断这个IP地址是否合法。

没完成,主要是不知道16进制的字符串怎么转换成数字,现在贴一下别人的 代码

后面面试官让我说一下思路。

面试官:你觉得你自己有什么技术上的短板吗?

我:动态规划,因为这周以来做的笔试遇到动态规划都没做出来。

然后面试快结束了,面试官问你有什么问题想问面试官的吗?

我:可不可以说一下你对我此次面试的看法?

面试官一个反客为主:你对你自己这次面试有什么评价吗?

二面

一开始自我介绍,跟一面差不多。

面试官只是简单问了一下比赛项目的事。

然后开始一些知识点提问。

面试官:数据库优化怎么做的啊?

我:主要是答了索引。

面试官:说一下二叉树的遍历。

我:4种,第一是层序遍历,其他三种是先序遍历、中序遍历、后序遍历。

面试官:说一下后面三种遍历的思路。

面试官:说一下层序遍历具体是怎么实现的。

我:用栈(答错了,应该用队列)

面试官:说一下字符串匹配算法

我:答了朴素的字符串匹配,然后答了KMP的思路。

面试官:说一下拓扑排序

我:不懂。

面试官:那你会什么排序算法啊?

我:选择排序、插入排序、快速排序、冒泡排序、堆排序、归并排序、希尔排序、桶排序、基数排序

面试官:说一下快速排序的思路,算法复杂度

面试官:快速排序是稳定的吗?

面试官:访问网站的时候,网站加载变慢了,怎么解决?

我:……(支吾了一阵子),可能是网络发生拥塞,应该过一段时间再来看,或者换一个环境。

面试官:还有呢?

我: ……查看HTTP状态码,是否是客户端或者服务器的问题……

后来同学说是数据库搜索语句的问题,搜索语句太复杂导致数据库搜索太久了。

最后是代码,也没完成。最后说了一下思路就拜拜了。

 * 你有一副手牌,手牌由大于0的整数组成。
 * 游戏规则给定一个W,W为一个顺子的长度,并且顺子都是有由连续的数字组成。
 * 现在他想把手牌重新排列,问是否能将手牌全部组成顺子。
 * 提示:
 * 1 <= hand.length <= 10000
 * 0 <= hand[i] <= 10^9
 * 1 <= W <= hand.length
 *
 * 解答要求
 * 时间限制:1000ms, 内存限制:256MB
 *
 * 示例 1:
 * 输入:hand = [1, 2, 3, 6, 2, 3, 4, 7, 8], W = 3
 * 输出:true
 * 解释:手牌可以被重新排列为 [1,2,3],[2,3,4],[6,7,8]。
 *
 * 示例 2:
 * 输入:hand = [1, 2, 3, 4, 5], W = 4
 * 输出:false
 * 解释:手牌无法被重新排列成几个大小为 4 的顺子。
 *
 * 示例 3:
 * 输入:hand = [1, 2, 3, 6, 7, 10], W = 3
 * 输出:false
 * 解释:手牌能排列成长度为3的两个组[1,2,3],[6,7,10], 但是其中一个组不连续,不构成顺子。

5.面经05

作者:道雪
链接:https://www.nowcoder.com/discuss/619347?type=post&order=time&pos=&page=1&channel=-1&source_id=search_post_nctrack
来源:牛客网

由于签了保密协议,因此不方便透露具体问题。

3.2通过机考三道题。

三道题分别100 200 300分,网传100分就可以通过。

楼主380分,分别0.9 1 0.3。牛客内貌似可以查到3.2华为机考题目,我就不透露了。

第一题简单,但是最后一个测试用例怎么都过不了,拿了0.9.

第二题二叉树相关,思路简单,实现较为繁琐,花费时间较大,写出来了,200分,1。

第三题是寻路问题强化版,我想写个基础解法拿点分,但是时间不够,就随便暴力猜了猜答案拿了90分(0.3)。

随后经过了漫长的等待 3.19一面二面顺序进行

一面:

主要问了java相关,问的比较细,结合其他我学过的语言询问区别、以及容器、框架、源码……

(其实楼主就自学了两个周的java,答了大概70%,不会的就老老实实说不会了)

没有问操作系统,计算机网络就问了GET\POST区别。

然后手撕代码,二叉树相关,简单题加了一丢丢难度。

写出来了,讲了思路,但是有点问题跑不出来,面试官算我过了。

一面结束5分钟后就显示通过,半小时后就二面。

二面:

只问了项目不问基础,问的十分细致。

问完直接手撕代码,机考第一题的强化班,本来高兴的要死,说这不是机考第一题么,发现是强化班垮了脸。

不过机考完我就思考了下这道题通用解法怎么写,很快想出思路给面试官讲了思路,然后处理边界条件。

本地跑了测试用例,直接给我过了。

半小时后通知二面通过。

主管面紧接着第二天下午。

面试官有点不苟言笑,不过聊的时间很长,没有问项目,更多问的是经历、看法、态度一类的。

最后面试结束说了我面试中的的一些缺点,提了建议,私人的和我聊了聊华为(主管人真的nice,面冷心善)

面试完5分钟官网显示一条绿通过,但是还没收到通过短信。

然后现在在资源池泡着吧估计。。。。等捞。

许愿offer,许愿offer.

不想再面试其他的了。

6.面经06

作者:买太平湖底陈年水墨
链接:https://www.nowcoder.com/discuss/602065?type=post&order=time&pos=&page=2&channel=-1&source_id=search_post_nctrack
来源:牛客网

面试时间
上午10点到12.30

不得不说华为效率太高了,上午接着两面完毕

一面
自我介绍
项目相关
问了很多具体业务相关的东西,这块我很多不是很懂
问了Java的classloader
算法题
二选一
最长公共子串
树的前序遍历
选了第一个
over

二面
聊天
排序算法有了解么,回答说快排最了解
写快排
聊天
over

二面通过,找时间约三面


冷秋