牛客上的面经,找了答案记录下来 腾讯 C++后台开发面经

1)200 OK
2)204 No :表示请求已成功处理,但是没有内容返回 。一般用在只是客户端向服务器发送信息,而服务器不用向客户端返回什么信息的情况 。
3)206:表示服务器已经完成了部分GET请求,响应报文中包含-Range指定范围的实体内容 。
4)301 Moved :永久重定向,表示请求的资源已经永久的搬到了其他位置 。
5)302 Found:临时重定向,表示请求的资源临时搬到了其他位置 。
6)304 Not :表示資源在由請求頭中的If--Since或If-None-Match參數指定的這一版本之後,未曾被修改 。在這種情況下,由於客戶端仍然具有以前下載的副本,因此不需要重新傳輸資源 。
7)400 Bad :表示请求报文存在语法错误或参数错误,服务器不理解 。
8)403 :表示对请求资源的访问被服务器拒绝了 。
9)404 Not Found:表示服务器找不到你请求的资源
10)500Error:表示服务器执行请求的时候出错了
11)503:表示服务器超负载或正停机维护,无法处理请求
【牛客上的面经,找了答案记录下来腾讯 C++后台开发面经】3.如何处理IO事件,信号事件,和定时事件
事件处理流程
集成信号事件到事件主循环
数据结构
1.布隆过滤器
布隆过滤器
2.hash表解决冲突的方法
1)开放定址法
2)拉链法
3)再哈希法
解决哈希冲突的三种方法
3.红黑树性质
1)每个节点要么是黑色,要么是红色 。
2)根节点是黑色 。
3)每个叶子节点(NIL)是黑色 。
4)每个红色结点的两个子结点一定都是黑色 。
5)任意一结点到每个叶子结点的路径都包含数量相同的黑结点 。
从5)可以推出:
5.1)如果一个结点存在黑子结点,那么该结点肯定有两个子结点
4.redis中的数据结构
1)
2)list
3)hash
4)set
5)zset
图解redis五种数据结构底层实现
深入浅出Redis-redis底层数据结构(上)
深入浅出Redis-redis底层数据结构(下)
5.跳表插入删除过程
跳表──没听过但很犀利的数据结构
编程题
1.判断大小端,int的大端转小端
1)判断大小端:可以用指针转换或者联合的方式 。
2)大端转小端:可以使用移位运算 。
大端模式和小端模式转化
2.大数相加
大数加法
3.最长公共子序列LCS
动态规划 最长公共子序列 过程图解
4.最小编辑距离
算法题解:最小编辑距离(动态规划算法)
5.二叉树中两个节点的最近公共父节点
二叉树的最近公共祖先
6.数据流的中位数
获取数据流中的中位数
其他
1.B树和B+树的区别
区别有以下两点:
1)B+树中只有叶子节点会带有指向记录的指针(ROWID),而B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中 。
2)B+树中所有叶子节点都是通过指针连接在一起,而B树不会 。
B+树的优点:
1)非叶子节点不会带上ROWID,这样,一个块中可以容纳更多的索引项,一是可以降低树的高度 。二是一个内部节点可以定位更多的叶子节点 。
2)叶子节点之间通过指针来连接,范围扫描将十分简单,而对于B树来说,则需要在叶子节点和内部节点不停的往返移动 。
B树的优点:
对于在内部节点的数据,可直接得到,不必根据叶子节点来定位 。
2.ACID
1)原子性():说的是一个事物内所有操作共同组成一个原子包,要么全部成功,要么全部失败 。
2)一致性():系统从一个正确的状态,迁移到另一个正确的状态 。