笔试题目3

第一部分、算法与程序设计

 

    1.在一棵一般的二叉树中找到指定的元素,如果有重复出现的元素,要求元素为深

度最深的任何一个。指定元素找不到时返回EMPTY_NODE,请用C语言实现,相关数据结构

与函数声明如下:

    struct Node

    {

        int iValue;  

        int id;

        Node *pLeft;

        Node *pRight;

    };

 

    const Node EMPTY_NODE = {0, 0, NULL, NULL};

    Node findDeepest(Node *pRoot, int iWanted); //pRoot为根节点,wanted为指定

元素的iValue

 

 

    2.一个单词字典库,单词个数约为10万,每个单词长度不超过16,单词都是由小写

字母组成,同时给出16个小写字母,请设计一种高效算法来找到用这些给 出字母拼出一

个字典中最大长度的单词。给出的16个字母每个字母最多使用一次,也可以不使用。存

在多解的时候给出任意一个最优答案就行。

 

    例如:给出adeenrstuvxyzuki可以拼出adventures

 

    请详细描述你的算法思路(如需要,可给出代码\伪代码来辅助描述),并分析其时

间复杂度。最后请分析下你的算法以及数据结构的优缺点,存在哪些可改进的地方。

 

 

第二部分、系统设计题

 

    1.200亿条数据,每条数据的大小在1K~1M不等,每条数据有一个唯一的u_int64

id。请设计一个读取数据系统,能根据id获取数据。要求:

    A.内存有限制,16G

    B.尽可能利用内存资源

    C.尽可能高效的获取数据

    D.可以利用磁盘,磁盘容量不受限制

 

 

2.C2C网站的商品子系统,包括的关系数据有 分类、属性、商品。

    一个商品只能属于一个分类,不同的分类有不同的属性(多个),每个属性有多个

候选属性值,其中分类、属性、属性值的更新频率较低。

    一个商品的属性,是所属分类的属性,属性值是候选属性值中的一个或多个。

    例如:

    分类:衣服

    属性:尺寸、颜色

    尺寸的候选属性值:S/M/L/XL/XXL/XXXL

    颜色的候选属性值:黑////

    商品:衣服A,尺寸S,颜色黑

    另外,商品还有卖家、价格等其它信息

 

    请设计商品子系统的存储结构或数据库结构。要求:

    A.能够正确维护分类、属性、商品之间的关系数据

    B.尽量减少冗余

    C.考虑数据的增、删、改、查操作,效率尽可能高

    D.能够按照卖家查询出其发布的所有商品


posted @ 2010-01-10 22:59  blessw  阅读(496)  评论(0编辑  收藏  举报