今日头条C++后台开发实习面试总结
来源:互联网 发布:漫画软件那个好 编辑:程序博客网 时间:2024/05/13 07:41
一. 旋转数组中寻找某个target,leetcode原题。
二. 一个数组建立堆。
堆排序中,最初的步骤就是建立一个堆。之前在一些公司的笔试题上面见到一些与建堆过程相关的题目,因为当时对建堆过程有个误解,所以经常选错。之前一直以为是在完全二叉树中依次插入序列中的元素,每插入一个元素,就调用siftup操作;而实际的建堆操作是序列中元素首先就全部填入一个完全二叉树,然后从第一个非终端节点开始,调用siftdown操作,依次调整。
以下是一篇关于建堆过程的文章,转载自:http://www.cnblogs.com/zabery/archive/2011/07/26/2117103.html
堆排序过程
堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。
既然是堆排序,自然需要先建立一个堆,而建堆的核心内容是调整堆,使二叉树满足堆的定义(每个节点的值都不大于其父节点的值)。调堆的过程应该从最后一个非叶子节点开始,假设有数组A = {1, 3, 4, 5, 7, 2, 6, 8, 0}。那么调堆的过程如下图,数组下标从0开始,A[3] = 5开始。分别与左孩子和右孩子比较大小,如果A[3]最大,则不用调整,否则和孩子中的值最大的一个交换位置,在图1中是A[7] > A[3] > A[8],所以A[3]与A[7]对换,从图1.1转到图1.2。
以上便是建堆的完整过程,主要总结有以下几点需要注意:
1.首先将所有元素按照初始顺序填充到一个完全二叉树中
2.从“最后一个非终端节点”开始,调用siftdown方法,调整堆的结构,直到根节点为止
三. TCP/IP close_wait状态和time_wait状态。
TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭。
CLOSE_WAIT状态的生成原因
首先我们知道,如果我们的服务器程序APACHE处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!
因为如果是CLIENT端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet:
Client ---> FIN ---> Server
Client <--- ACK <--- Server
这时候Client端处于FIN_WAIT_2状态;而Server 程序处于CLOSE_WAIT状态。
Client <--- FIN <--- Server
这时Server 发送FIN给Client,Server 就置为LAST_ACK状态。
Client ---> ACK ---> Server
Client回应了ACK,那么Server 的套接字才会真正置为CLOSED状态。
Server 程序处于CLOSE_WAIT状态,而不是LAST_ACK状态,说明还没有发FIN给Client,那么可能是在关闭连接之前还有许多数据要发送或者其他事要做,导致没有发这个FIN packet。
四. nginx的进程模型。
五. redis的内存分配。
六.MySQL 引擎 Innodb 聚簇索引与非聚簇索引,B+树与B树的区别。
- 今日头条C++后台开发实习面试总结
- 今日头条实习面试总结(1)
- 今日头条实习面试总结(2)
- 12.20今日头条实习面试总结-算法工程师
- 头条面试-后台研发实习
- 今日头条前端面试总结
- 今日头条前端面试总结
- 面试-今日头条
- 今日头条面试
- 今日头条面试
- 今日头条面试相关
- 今日头条实习生面试
- 今日头条面试总结——instanceof原理
- [笔试练习]今日头条实习笔试
- 2017今日头条实习测试
- ACM--面试--回文解码--今日头条2017实习offer题目
- 今日头条面试经验分享
- 今日头条面试(android)
- 让图片自适应imageView
- WEB系统服务端常见性能监控指标
- LeetCode 260. Single Number III
- AttributeError: 'module' object has no attribute '_base' 可行解决办法
- Java栈的实现
- 今日头条C++后台开发实习面试总结
- 北航计算机机试07排序10归并字符串
- 快速排序优化
- 第四周算法题
- ACM书中的题目 O-15
- 基于How To Tango With Django 1.9的重新实践(15)——Webhose Search
- Mybatis动态Sql语句查询
- 机房重构之细粒归仓
- 【MyBatis学习12】多对多关联