先说下笔试题吧 具体题目记不清了 说下题型吧
1、哈希表
2、并查集
3、基于优先队列的广度优先搜索
比较偏向算法跟数据结构
一面:
1、.一个map中存有类似如下的数据:
key value
"a" "afasfwaeqwfwa(b)eqwgewgrqgq"
"b" "frgwegqgg(c)fqf(d)dqf"
"c" "fqfgrfwgrw"
"d" "gwrgwergqwg"
现在写一个函数,将"b"的value中的“(c)”和“(d)”分别用"c”和"d"的value替换,然后将"a"的value中的“(b)”用"b"的value替换。注:上面的map只是一个例子而己,实际情况可能更复杂。
二面
1、 给2个无序数组 a b
对于任意一个b[i] 在a中找出与其最接近的值
使用二分或者三分 二分需要判断多种情况
2、给出一个二叉树 包含数据 按照中序遍历的顺序找出第k个 元素
解:(1) 中序遍历 直接找出 (递归 非递归) 可优化
(2)使用二叉排序树 结点遍历的顺序进行编号
(3)面试官提醒 可以通过结点的数据域 来做 可以到O(logn)
3、讨论了些c++的知识
禁止一个类被继承 使用虚继承 跟友元可以完成
用c实现多态
三面
1、链表的各种经典问题 判断环 相交结点 等
2、const的各种用法
3、一个不规则多边形 判断一个点是在多边形内还是外
4、操作系统 线程状态图 线程进程区别 虚拟内存 cpu调度 cache替换算法等
5、计算机网络 OSI TCP/IP 三次握手 四次握手 问的很细 四次握手为什么是四次不是三次 三次为什么不是两次
问的东西实在太多...只能记起这些....面试官是有题库的- -