tplink 深圳软开一二面+一些问题的整理
一面内容:
抽象类,虚基类(答错了,应该是多继承如菱形继承),static作用,全局静态局部变量的区别+作用原理(一开始没懂,后面问在内存中的分布),extern c作用(回答了但他说他不是这个意思,说这个问题可能我没遇见过),内联函数及优点缺点
二面内容:
TCP怎么建立连接的(我答的三次握手,但面试官说他想问的是socket的流程,我直接说我是自学的不会),虚函数,重载和虚函数(从多态角度答的)
编程题:236 打家劫舍Ⅱ、 687 最长同值路径 (多看面经还是有用的,大概率是别人考过的原题)
反问:深圳这边的三面间隔一般要多久? 回答约一周出现过的问题(只涉及C++,操作系统,计算机网络):
-
static关键字、const关键字、volatile关键字
-
OSI七层协议、五层模型
-
TCP三次握手
-
TCP为什么要四次挥手
-
TCP如何保证可靠传输
-
进程线程的区别
-
并发机制
-
哈希表的构成,如何解决哈希冲突
-
了解哪些排序算法,重点说说快速排序
-
动态规划算法
-
C语言 int[],int* ,int** 的区别
-
冒泡排序
-
打开一个网页具体用到了哪些协议
-
应用层作用,有哪些协议
-
http协议具体内容
-
红黑树
-
http状态码
-
get和post方法的区别
-
lambda函数
-
ARP协议
-
进程切换的几种状态
-
select、poll和epoll流程
-
堆栈,全局区
-
多态
-
虚函数,虚函数表
-
Sprintf,memcpy,strcpy
-
TCP拥塞控制
-
5万人口的年龄排序(计数排序)
-
内存泄漏,如何检查?如何Debug?
-
进程同步
-
手算根号13
-
线程池执行流程,线程池数量怎么分配
-
TCP滑动窗口
-
堆栈的效率对比
-
为什么快慢指针能找到环
-
如何获取更多的并发连接
-
https
-
线程安全实现的方式
-
归并排序
-
TCP的Time-Wait状态是怎么产生的
-
TCP、UDP的区别
-
线程的通信方式
-
new和malloc的区别
-
socket套接字
-
指针和引用的区别
-
c和c++的区别
-
c++三大特性
-
map和set,底层实现
-
操作系统中的内存管理
-
fork函数
-
智能指针的作用和原理
-
为什么进程要动态分配内存
-
内存碎片
出现过的编程题:
20 有效的括号【哈希表+栈】
32 最长有效括号【前后两趟遍历 / 栈 / 动态规划】
53 最大(连续)子数组和【贪心】
70 爬楼梯【动态规划(滚动数组)】
102 二叉树的层序遍历【队列】
213 打家劫舍Ⅱ【动态规划】
236 二叉树的最近公共祖先【后序遍历的递归变形】
268 丢失的数字【位元算异或 / 数学】
344 反转字符串【双指针】
409 最长回文串【贪心】
414 第三大的数【set / 滚动数组】
424 替换后的最长重复字符【滑动窗口】
687 最长同值路径【后序遍历的递归变形】
698 划分为k个相等的子集【DFS】
724 寻找数组的中心下标【前缀和】
1004 最大连续1的个数 Ⅲ(类似424)【滑动窗口】
1790 仅执行一次字符串交换能否使两个字符串相等【一次遍历】
剑指Offer 35 复杂链表的复制【链表】
剑指Offer 41 数据流的中位数【两个排序规则相反的优先级队列】