呵呵 刚才参加完了 滴滴2017的在线笔试。
又一次被虐。。班上很多人都在耍算法,这样算法 那样算法。其实今天看他的 题目 也就是 数据结构的基础知识, 没有多高深的算法。。当然这是一个小生的 匹夫之言;
编程第一题: 求最大子序列和,Mark Allen Weiss 在 《数据结构和算法分析》 一书中用到了4种方法来 解决这个问题,我采用了最后一种算法 来解决该问题,结果通过率只有 90% , 我也是醉了。。现在也 不觉明理;
编程第二题: 说是有n个桌子,每个桌子 的容量不同; 又来了 m 批客人,每批客人的数量 不同 预计消费金额不同; 问题是 安排哪些 客人入住 使得 最后的消费金额最大 ?
这个问题 也就是一个 装箱问题(脱机算法的一个应用),采用的算法是 最佳适合递减算法, 也是 Mark Allen Weiss 在 《数据结构和算法分析》 一书中 提到的算法;(当然了, 答这个题的时候 小生我思路很清晰, 无奈之前全用C 耍数据结构,笔试用java 来写 不是那么自如。各种捉急。)
编程最后一题:说是 文件一 存储了很多 ip地址(如 10.84.236.239), 而文件二 存储了 很多 ip地址 和 ip地址所在地址(如 10.84.236.239 成都),问题是 如何尽可能快的 找出给定ip地址 所属的地址?
这个题, 我个人觉得 将 ip地址 依据 . 进行分割,然后建立n 叉树(但是 又不一定是 n 叉树这种数据结构, 我模糊记得Mark Allen Weiss 在 《数据结构和算法分析》 一书中提到了很多的 高级数据结构,或许在这里可以帮上忙,当然了, 小生没有做出来,估计数据结构 学得也是 一只半点),来进行查找;
最后要分享的是:其实 个人以为 吧 Mark Allen Weiss 的《数据结构和算法分析》这本书 吃透, 今晚的滴滴在线笔试也就那个样子。。好吧 翔出来了, 我要去 炸厕所了。
最后一点提醒: 在线笔试可以选择 java , C++, C ,但是 建议以java为主公方向的 童鞋些不要用 C 去follow 数据结构,而用java, 因为到时 你在线笔试的时候 还是要用自己熟悉的语言去 答题。而 C 确实太复杂了。我今晚也是日了狗了,之前全用 C 耍数据结构,结果 正式笔试的时候 不得不用 java,反正觉得不那么自如。