分享下自己的面试经历,也算是对自己的一个总结吧。其实越到后面面试越轻松,很多知识点都会慢慢总结到。 阿里 中间件存储技术部门 止步于HR 一面 3.5 基础: Awk ,sed 文本替换方法 项目 动态规划和遗传算法有么区别 判断单链表是否有环 bfs树 code: go写个数塔 二面 3.13 基础: 内存分配算法 为什么会有最坏适应 物理内存怎么组织的 Tcp拥塞控制 如何实现一个高性能服务 code: LRU 美团 大数据部门 止步一面 一面 3.14 基础: 如何保证tcp传输过程中数据不丢失,数据的完整性 Go 与其它语言相比优势? go channal 线程之间通信 osi Http,tcp,ip哪层 三次握 四次挥 mysql 索引时间等 B+树 说下epoll 同步/异步,阻塞/ 阻塞 单链表如何判断有环 头条 广告数据部 过 一面 3.23 code: 继续阅读 >>


王一妃 18/05/18 18:18:10
题目:https://vjudge.net/problem/HDU-1394 题目大意 给定一个序列,将前m(0-n-1)个数字移到末尾,得到一个新的序列。求所有这些序列的逆序的最小值 分析 如果知道了当前序列逆序数为sum,那么移动头元素后的逆序数将会是sum-x+(n-1-x), 那么就是怎么求当前逆序数,自然就用到了线段树。 代码 /******************************************************************** * File Name: hdu1394.cpp * Author: Sequin * mail: Catherine199787@outlook.com * Created Time: 三 9/27 11:29:02 2017 *************************************************************************/ #include & 继续阅读 >>


王一妃 17/10/27 11:58:29
题目:https://vjudge.net/problem/POJ-2236 题目大意 地震了有n个电脑要修,两个电脑要连接距离不能超过d。如果AB要连接有两种情况,A直接连接B, AB不能直接连接但是A连接C,B连接C。给你两种操作,O意味着修复S意味着测试能否连接 分析 很明显是一个并查集题,模版加上一些限制就能过。 代码 #include <cstdio> #include <iostream> #include <string.h> #include <cmath> #include <cstdlib> using namespace std; #define NUM 1001 int pre[NUM]; int pos[NUM][NUM]; bool conn[NUM]; float dis[NUM]; int n, d; int find_(int x){ int t = x; w 继续阅读 >>


王一妃 17/10/27 11:48:51
题目:https://vjudge.net/problem/HDU-1754 分析 N大M大,线段树点修改 代码 /******************************************************************** * File Name: hdu1754.cpp * Author: Sequin * mail: Catherine199787@outlook.com * Created Time: 二 9/26 21:18:47 2017 *************************************************************************/ #include <iostream> #include <stdio.h> #include <string.h> #include <stack> #include <queue> # 继续阅读 >>


王一妃 17/10/27 11:30:35
题目:https://vjudge.net/contest/194395#problem/E 题目大意 给你一个无向图,让你求其中大小为s的完全图分量。 分析 暴力来做,设置一个集合,dfs当前点是否与集合中的点都有边,边界为集合大小,会超时,需要剪枝 每次都选择节点数大的点进去,这样就不会重复之前的选择了,比如1,2这种情况选择过了,然后2,1你就不用考虑了。 训练的时候想的是先把图补边为完全图,然后将没有的边从全排列里面剔除出去,然后各种麻烦弄不出来,还带偏了队友的思路呵呵 代码 #include <iostream> #include <stdio.h> #include <string.h> #include <stack> #include <queue> #include <map> #include <ctype.h> #include <set> # 继续阅读 >>


王一妃 17/10/26 23:01:46
题目:https://vjudge.net/problem/ACdream-1099 分析 因为是中文版所以说的已经很详细了。就是n很多k很大需要注意,提供一个输入外挂函数scan_d,然后二分节省时间。 代码 /******************************************************************** * File Name: kth_big_number.cpp * Author: Sequin * mail: Catherine199787@outlook.com * Created Time: 四 8/ 3 15:06:51 2017 *************************************************************************/ #include <iostream> #include <stdio.h> #include <strin 继续阅读 >>


王一妃 17/10/25 20:51:22
题目:https://vjudge.net/problem/UVA-1329 题目大意 给你n个点进行操作,I表示连接操作,A连接B就表示A指向B的中心。E 表示查询从某个点到中心的长度,点之间的长度等于它们做差的绝对值。 分析 In such a way the two old clusters are joined in a new cluster, served by the center of the old cluster B这句可以看出当一个点与另一个点连接,这个点的中心被另一个点的中心取代,这是并查集的性质。有位有距离属性,所以并查集加权。 代码 /******************************************************************** * File Name: Corporative_Network.cpp * Author: Sequin * mail: Catherine199787@outlook.co 继续阅读 >>


王一妃 17/10/25 20:29:41
题目:https://vjudge.net/problem/POJ-1321 题目大意 一个矩形棋盘上,任一摆放的两个棋子不能同行或者同列。求摆放k个棋子的可行方案是多少。 分析 一个简单且标准的搜索,记录状态即可。 代码 * File Name: 7_26.cpp * Author: Sequin * mail: Catherine199787@outlook.com * Created Time: 三 7/26 08:27:23 2017 *************************************************************************/ #include <iostream> #include <stdio.h> #include <string.h> #include <stack> #include <queue> #include <map> #include <ctype.h&g 继续阅读 >>


王一妃 17/10/25 19:42:44
题目:https://vjudge.net/contest/191379#problem/B 题目大意 给你N个爆炸点,一个爆照点可以引爆在它爆炸范围的其他爆炸点,点燃炸弹需要消耗,问你引爆所有炸弹真的最小花费。 分析 其实当时做的时候想到这个思路了,但是没有继续想下去,其实它就是一个scc的缩点的变形。 1. 首先我们可构造一个DAG,如果A可以引爆B, 那么A看作可达B。 2. 对于生成的DAG, 它有可能有环,当它有环的时候,引爆环上的任意一点造成的效果都是一致的,我们可以将这个环缩成一个点, 这里可以用tarjan去缩点染色。 3. 很容易想到,对于新的DAG来说入度为0的点是一定要引爆的,因为没有炸弹可以引爆它,那么只需要累加这些入度为0的点就行了。 代码 /******************************************************************** * File Name: B.cpp * A 继续阅读 >>


王一妃 17/10/25 11:43:14
题目:https://vjudge.net/contest/191379#problem/F 题目大意 将一串数字按顺序划分,满足公式 A+B-C*D/E, 求划分所得公式的值最大是多少 分析 首先可以明确,要想值最大,那么 C*D/E 就要尽可能的小。 容易想到 C*D/E 最小为0, 那么C*D应尽可能的小,E尽可能的大。 对于 A+B 来说,要最大就必须保证位数最大,那么有两种情况,要么A占前一位 ,B占剩余位,要么B占最后一位,A占剩余位。 以上条件,我们可以通过枚举减号的位置来确定最终的最大值,实际上还是策略性的暴力解题。 代码 /******************************************************************** * File Name: F.cpp * Author: Sequin * mail: Catherine199787@outlook.com * Crea 继续阅读 >>


王一妃 17/10/25 11:35:07