面试刷题9-17

一面:代码复盘,由于ac了三道,每道题都让讲思考过程,为啥要这么写。然后出了一道leetcode原题分糖果,5分钟写完,聊会项目,结束。

Leetcode 135较难的题目

二面:聊项目,问基础,进程线程,链表插入复杂度等等,然后手撕一道leetcode原题,和等于k的最长子序列,10分钟写完,结束。

进程线程问题

Leetcode 325 从two sum改遍过来,略有难度

三面:上来撕了个简单的题,挑一个最满意的项目讲讲,再讲讲其他的项目,然后问兴趣爱好,有没有受过挫折,遇到挫折怎么处理,平时会悲观吗,脾气怎么样,能不能接受加班,对工作地点有要求吗,自己最大的优点是什么,最大的缺点是什么。
一面:
(狂问算法 还有无解题)
一维空间定位一个小人
二维空间定位一个小人
快排 最好最坏时间复杂度 枢轴随礼选取后还可以怎么优化

随机打乱下数组?
k节点完全二叉树的高度

logk
vector动态扩容调用构造函数的次数(公式)
数据库中两个表求交集

二面:
const底层实现
多态相关
内存泄露相关
智能指针
关于项目

2.class依次加东西并依次问大小;

3.map和set的区别;

  

4.map与HashMap的区别;

5.MySQL底层引擎innodb;

6.有看过开源项目吗(我自己复现过DeepFake);

7.反问环节(我问了还需要学习一些什么知识:越多越好;我的面试表现如何:挺不错的)


 

一面:

自我介绍

1.字符串"123"存在哪里?

常量区

2.进程的通信?

管道(pipe和fifo)、共享内存、信号量、消息队列、SOCKET

3.线程的同步? 讲了synchronized相关

4.二叉树的前序遍历和思路? 递归和非递归都写了

5.讲一个你觉得最好的项目。

6.说一下项目中遇到的比较难的bug,然后最后怎么解决的?

7.linux,查找文本"abc"怎么写

grep abc *.txt

8.算法题:设计一个计算器,输入字符串包含:+ - * / MAX MIN,求输出结果;

 

二面:

自我介绍

1.了解过栈吗?计算机网络中哪些协议用到了栈? 

TCP,UDP,IP

2.知道ping吗?

检查下ip地址通不通,基于ICMP协议

3.图的拓扑结构有了解吗? 我:??????

4.图的最短路径的算法叫什么?我:地利斯特拉  简单讲一下他的原理......我:......

5.链表有使用过吗?讲一下他的优点还有使用场景 //插入最快,查询不快。

6.链表和树的区别

链表只有一个指针,

7.哈希结构和树的区别

Hash结构底层是线性结构。

8.算法题:

输入一个链表的头结点,输出当前节点距离最近的,比他大的下一个,要求用O(n)复杂度完成。

-》用暴力解法,还有各种其他的方法,都不让过。必须O(N),最后挂了......

-》后来下来想了下,单调栈可以解决......


一面:
1.红黑树和AVL树的特点以及区别。

AVL是自平衡二叉树,会自动旋转实现树的平衡,红黑树有红节点和黑节点两种,通过复杂的操作实现平衡。
2.B树和B+树的特点以及区别。

B+树的数据只存储在叶子节点,非叶子节点只存储索引。
3.解释timewait状态。

四次挥手最后一次挥手等待2MSL,是的最后一次挥手报文到达
4.TCP如何避免拥塞,怎么判断拥塞了。
5.解释LRU算法,怎么实现。

LRU就是使用一个链表和一个哈希表,在O(1)的时间内获取到一个元素,在O(1)时间插入一个元素,放在链表开头。

6.当数据量较大时,快速排序和堆排序性能比较。
7.进程间通信介绍。
8.操作系统中的各种锁的实现原理,互斥锁、悲观锁、乐观锁。

回答出锁的原理
9.介绍时间复杂度是O(n)的算法。

求一个数组中的最大值
11.写一个宏,实现加法。

注意加()
12.宏的优缺点,副作用是什么。

不会进行类型检查,只替换不组合
13.读程序(继承与多态,涉及重写、重定义)。
14.多态实现原理。
15.规律题:1~100,每轮依次划掉奇数位置上的数,最后会剩下哪个数?


16.概率题:A,B两个人赌博,胜率各自为0.5,现在设定获胜规则:A只要获胜
2局以上就获胜,B要3局以上才会获胜,问A,B双方获胜概率多少

 

 

   
17.代码题:区间最大最小值。两个长度为n的序列a,b,问有多少区间[l,r]
满足max(a[l,r])<min(b[l,r])即a[l,r]的最大值小于b[l,r]的最小值


18.代码题:最大不重复子串。给定一个字符串,找出其中无重复字符的最长
子字符串的长度。 

Leetcode原题,使用双指针,Set集合
19.代码题:字符串s=“0123456789101112...”返回s[i],让采用逐步缩小范围的方法,
分为三类:一位数、二位数、三位数,给定一个m直接可以判断它落在
哪个区间,然后从区间起始开始填数字串。

找规律题,作为面试题较难

二面:
1.项目细节。
2.手写项目中某个模块代码。
3.介绍各网络协议。
4.DNS在网络层用哪个协议,为什么。

ip协议,通过网络传输数据
5.介绍HTTPS协议,详述SSL建立连接过程。

客户端发送支持的加密协议以及版本给服务器,服务器筛选适合的加密协议,服务器返回证书,证书中有公钥,客户端使用根证书验制合法性,生成对称密钥,用证书中的公钥加密,发送到服务器,服务器用私钥加密,获取对称密钥,使用密钥加密数据开始通信。


6.常见的非对称加密,对称加密算法,3DES为什么叫3DES。

公钥加密私钥解密,私钥加密,公钥解密。

对称加密就是同一个密钥加密,解密
7.介绍智能指针。

采用引用计数的方法,用一次,引用计数+1,delete一次,引用次数-1,当引用次数为0时,回收内存。
8.代码题:反转单链表。                经典面试题
9.代码题:复杂链表复制。            剑指offer原题
10.代码题:数组a,先单调递增再单调递减,输出数组中不同元素个数。要求:O(1)空间复杂度,不能改变原数组

三面:
1.详述函数重载 

函数名相同,参数不同,构成函数重载
2.64匹马,8个赛道,找最快的4匹马。
3.64匹马,8个赛道,找最快的8匹马。

上面两道智力题
4.一条TCP连接上发送数据速度的影响因素有哪些。

网卡,内存
5.map对象拷贝构造实现过程。

赋值一棵红黑树?
6.epoll中常见事件,中断属于哪一种。

读事件,写事件,错误事件?
7.多线程与多进程区别,使用场景,浏览器使用哪个,为什么。

浏览器使用多进程,为了安全。

这个问题的答案似乎是非常清楚的,可以概括为:为了安全、稳定、性能,只是要牺牲点内存作为代价。对于安全和稳定,利用系统的进程机制就可以完成。但是多进程下的进程间通讯(IPC)很慢,而分为多进程后,一些协作任务就要分开到两个进程,如何能保持良好的性能,更不说比单进程模型更高的性能了? 所以这里再次探讨浏览器选择多进程架构的原因,以及对应架构中的要点。

8.基于TCP的整个网络连接过程。

三次握手过程

9. 二叉搜索树找第k小的树

中序遍历
10.代码题:长度为n的数组,元素大小是0~n-1,判断数组元素是否有重复的
要求:O(1)时间空间复杂度。

剑指offer原题
11.代码题:求一个数组连续子数组的最大区间和。

Leetcode经典原题。

                                                                                                                                                                                                     


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值