一 华为实习在线笔试
三道编程题目(100+200+300)
题目一
题目二
题目三
思路与代码可以参考这个博客
二 面试
- 项目经历,写过多少行代码?项目中你解决了什么问题?从项目中学到什么?
- 用过哪些开源库?哪些数据结构让你惊艳?哪些算法让你印象深刻?
- 代码在内存中分布都有哪些区?宏定义又存在于哪个区域?
- 程序的内部分布?
数据结构
1 堆栈的区别?堆中的数据会被回收吗?
2 平衡二叉树,红黑树,霍夫曼树,B+树 分别介绍一下 ferquency 3
3 常用的排序算法都有哪些,分别在什么场景下使用?时间复杂度分别是什么?快速排序在什么情况下时间复杂度最高?快速排序的实现?快速排序的非递归如何实现?快速排序是稳定的吗?排序的稳定性如何定义?frequency 7
4 图中的最短路径问题怎么求?迪杰斯特拉算法和弗洛伊德算法区别都有什么?
5 B树和B+树的区别有哪些?
6 手撕代码:一颗二叉排序树,找出树中的第k大节点
7 哈希表与二叉搜索树
8 怎么判断一个链表是否是循环链表?
9 知道多少种查找算法?各个的时间空间复杂度?写个不带bug的二分查找?
10 2个有序表归并的最优算法/写一个有序链表的合并 frequency 2
11 常用的数据结构哪些? frequency 2
12 一致性哈希是如何实现的?
13 KMP算法的原理
14 手写代码,计算一个整数二进制中0的个数
15 AVL树旋转
C++
1 malloc/free和new/delete的区别? frequency 3
2 什么是虚函数表?虚函数表指针?为什么析构函数都是虚函数,不这样会怎样?(必问) 虚函数有什么用?虚函数在内存上占多少字节?frequency 6
3 什么是多态(运行时多态:虚函数和dynamic_cast 编译时多态:模板和函数重载)?什么是重载? frequency 9
4 C++的发行版本是什么?C++11的新特性都有什么? frequency 2
5 static的作用和用法 frequency 5
6 C++虚函数与纯虚函数的区别?分别应用在什么场合?虚函数的实现?frequency 3
7 子类析构会调用父类的析构吗?执行顺序是什么?
8 STL中map和hashmap的区别,查找的时间复杂度分别是多少?
9 如何在共享内存上使用STL标准库?
10 STL allocator 介绍一下
11 iterator与container之间的耦合关系
12 C和C++的区别 frequency 2
13 说一下对ifdef endif的理解
14 传入一个char *变量,怎么求这个字符数组的长度,用strlen还是sizeof?
15 引用和指针的区别 写代码时什么时候用指针什么时候用引用? 引用传递/指针传递/引用传递 frequency 6
16 sizeof(引用)和sizeof(指针)的区别
17 深浅拷贝 为什么要用深拷贝?拷贝构造函数? frequency 3
18 set和map的实现 map底层 frequency 3
19 C++模板是什么?底层实现是什么?
20 口述实现C++中的String类
21 C/C++源代码如何从代码变成可执行程序的?
22 C++中的STL的vector说一下 vector初始化10个大小,之后push_back超过了怎么办?vector的内存管理策略?frequency 3
23 什么是虚拟地址空间?
24 手写strcpy
25 C语言的memcpy用过吗?对memcpy(a,a 3,6)这样的代码如何处理?
26 volatile的作用
27 shared_ptr简单介绍一下?
28 静态编译/动态编译
29 从C文件到执行文件的过程
30 内联函数在什么时候扩展.?(编译)
31 vector和deque的底层实现有何不同
32 迭代器什么时候会失效?frequency 2
33 emplace_back的实现
34 push_back会对迭代器造成什么影响?
35 C语言如何生成随机数
36 什么是内存泄露,如何测试内存泄露
算法
1 如果有一个程序存在内存泄漏,如何找到泄露的地方?
2 如果有一个几百万代码的程序崩溃了,如何定位问题所在?
3 100万数据找top k
4 判断一个数是不是2的幂
5 两个单链表有公共节点,找出第一个
6 微博评论场景题目:想在用户进入新闻时优先看到自己好友对此新闻的评论,好友可能有多条评论。如何设计结构?
7 智力题:36匹马6个跑道无秒表选前三,最少跑几轮?
8 怎么判断一个字符串是回文字符串?
9 用栈实现队列
10 有序矩阵中搜索一个元素的最优方法
11 将一个有序数组转换为一个平衡二叉搜索树
12 500M内存 有4亿个IP 给你一个IP 如何判断当前IP是否在线?
13 100G日志,每行一个字符串,给你1G内存,如何找出重复次数最多的字符串?
14 一个5L的桶和6L的桶,打出3L水
15 100亿找最大的1000个数
16 m个有序数组合并后输出第k个数(二分)
17 二叉树的最小公共结点
18 给定几个互不相同的数字组成的一个字符串,输出同样由这几个数字组成的,字典序恰好比它大1的字符串。(这个题相当于是一个next_permutation(),答出这个之后被要求不能调用这个函数)
19 手动实现STL的equal_range()
20 给定有序的整数序列A和B,求序列A和B merge以后的中位数。
21 给定字符串s,输出第一个满足:在s中恰好出现3次的字母。保证存在这样的字母且字符串都是小写字母组成。(比较简单,扫一遍开个数组统计,再开个vector存一下就行了。手写代码。)
Linux
1 如果想对linux内核进行修改,怎么修改?
2 linux 现在发行到哪一个版本了。平时用Centos还是Ubuntu啊?为什么?
3 linux下查看内存使用的命令是什么?查看负载的命令是什么?
4 linux下如何查看网络中服务器状态?
5 Linux下TCP服务器都有什么状态?
6 linux下TIME_WAIT和CLOSE_WAIT区别是什么? frequency 2
7 知道epoll和select吗 区别? frequency 2
8 创建一个TCP服务器的步骤是什么?
9 端口的用处?
10 操作系统中的PV操作是作什么用的?能否举个例子?
11 fork的过程
12 fork/vfork/clone的区别
13 僵尸进程和孤儿进程以及形成原因 frequency 2
14 惊群效应,如何避免
15 内存分配的原理
16 gcc的选项有哪些?
17 要查找某个目录下以cvte开头的文件的命令?
18 linux下删除一个目录的命令?
19 软链接和硬链接 删除了软链接的源文件软链接可用吗?
20 inode节点
21 死锁是什么?死锁的条件?
22 任务调度的算法知道哪些?
23 df命令和各个参数
24 进程间通信的方式以及它们的区别? 进程间通信有哪些? frequency 3
25 页和段的区别?哪个对程序员是透明的?
26 线程和进程的区别?什么情况下多进程优于多线程? 为何引入线程而非子进程? frequency 7
27 linux常用命令有哪些?
28 如何查看一个进程打开的文件?
29 从内存读数据一定比磁盘快吗?
30 互斥锁和读写锁介绍一下?哪个效率更高?互斥锁的数量级是什么?毫秒级/微秒级/纳秒级? frequency 2
31 linux下查看进程的命令 查进程 (ps -aux | grep ...) 杀进程(kill)
32 linux如何查看内存限制?
网络/网络编程
1 TCP三次握手,四次挥手,超时重传 为什么要三次?两次会有什么后果? 为什么不能三次挥手?详细描述TCP三次握手过程中传输的数据内容 frequency 9
2 TCP的关闭连接
3 如果网络延迟很高,但是又没有发生丢包,利用tcp会使吞吐量下降,该如何解决呢?
4 Ddos的攻击原理
5 网络层/数据链路层/传输层的设备有哪些?
6 网络层/传输层的协议有哪些?
7 网络层/数据链路层/传输层使用的寻址地址分别是什么?
8 中断的作用
9 poll和epoll的区别 linux系统编程,说一下IO复用 poll epoll 多路复用select/poll/epoll的区别? frequency 8
10 epoll中ET模式与LT模式的区别
11 写一个简单的FTP服务器
12 HTTP1.0 和HTTP1.1的区别
13 介绍MQTT协议,和HTTP的区别? frequency 2
14 TIME_WAIT发生的条件和作用 TIME_WAIT状态持续多久,为什么会有TIME_WAIT状态? frequency 2
15 TCP协议有几大计时器
16 websocket协议 frequency 2
17 HTTPS和SSL
18 nagle和clark算法
19 TCP和UDP的区别 TCP为什么可靠 UDP有什么优势 UDP头部组成和大小 实现一个可靠的UDP TCP是什么层的协议? frequency 5
20 听说过哪些http服务器
21 tcp的五层结构 七层结构中TCP/IP分别是哪一层? frequency 2
22 TCP流量控制和拥塞控制
23 黑盒测试白盒测试各是什么?各自优缺点?
数据库
1 SQL语句,查询两个数据库表中ID相同的信息。
2 数据库引擎和数据库三个范式?
3 数据库索引?
4 数据库事物?事物的四大特性? 如何实现事物的隔离性?frequency 5
5 B树,B树是怎么当索引的?
6 数据库union join区别?
7 一二三范式
8 sql语句写一个属性的查询,分组,计数并排序输出
9 给一个id,科目;成绩的表,搜索不及格科目大于两门课的学生id。