C 瓜同学一直关注这个我这个小地方,下面是一些我面试中或者和同学讨论的一些不错的面试题,备份一下,也希望对你有用。
1:C++ 的多态是如何实现的?如果你用 C 如何来实现面向对象的多态?
2:判断一个有向图中是否有环。上篇文章里面写的那个杯子倒水问题。给一个都是正整数的数组,和一个正整数 sum,求是否存在和为 sum 的子数列。
3:两个有大量 id 的集合 A 和 B,数量上亿级,如何求出两个集合的交集,A 中有的 B 中没有的,和 B 中有的 A 中没有的集合。
4:设计实现一个管理内存的小模块,接口为 void checkout(size_t size), void checkin(void ptr)。
5:设计一个数据结构,存储一副象棋子的摆放,尽量压缩空间,使得方便通过传输到另外一台机子上然后恢复棋盘。
6:数组的众数问题,最长递增子序列问题。找大量数据中前 k 个大的数。找大量数据中第 k 大的数。
7:一个平面中有很多点,用最快的算法找出相隔最近的两个点。
8:select/poll 和 epoll,基本互联网公司都会提到这个东西。
9:给敏感词列表,和一大段文本,考虑一个敏感词过滤的算法。
10:海量数据问题,很多,一般方法就为分治、hash、位图。
很多没有标准答案,面试过程中的探讨很重要。找工作不难,找份好工作还是难的,基础知识很重要,数据结构和算法、操作系统、编程语言的掌握,数据库和网络。可以根据自己的喜好,偏向于某个方向。