摘要:
13.LRU算法的应用 题目 关于用户信息的需求 假定在一个复杂的系统中,需要抽象出一个用户系统,提供给其他子系统使用,该如何实现。子系统对用户信息的查询频率很高,要注意性能问题。 用户信息是存储在数据库里的,但是对于查询频率高的数据,不能每一次请求时都去查询数据库。 思路 哈希表 使用以用户id为 阅读全文
摘要:
题目 关于用户标签的需求:用户标签包括用户的社会属性、生活习惯、消费行为等信息。例如,程序员,有驾照,单身等等。通过用户标签,可以对多样的用户群体进行统计。例如,统计用户的男女比例,统计喜欢旅游的用户数量等。 通常的思路,是使用关系型数据库,比如Occupation表示用户职位,gender表示性别 阅读全文
摘要:
11.寻找缺失的整数 题目 在一个无序数组里有99个不重复的正整数,范围是1100,唯独缺少一个1100的整数。然后找出这个缺失的整数。 思路 1.对无序数组,进行升序排序,先判断首位是否为2或99,如果是则得到缺失值,否则,不连续的两个元素中间即为,缺失值。时间复杂度,为排序算法的时间复杂度,空间 阅读全文
摘要:
10.金矿问题 题目 有5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人人数也不同。例如有的金矿储量是500kg黄金,需要5个工人来挖掘,有的金矿储量是200kg黄金,需要3个工人来挖掘...... 如果参与挖矿的工人的总数是10。每座金矿要么全挖,要么不挖,不能派出一半人挖取一半的金矿。要求计 阅读全文
摘要:
9.如何实现大正整数相加 题目 给出两个很大的正整数,要求实现程序求出两个正整数之和。超出Java中的Long类型的范围的正整数,如何求和。 思路 使用到小学的数学了,对于大的数,小学老师会教,列竖式进行计算。 对于,计算机,无法计算太大的数,进行加运算。我们可以将大的数,转成一个个小的整数,创建两 阅读全文
摘要:
8.删去k个数字后的最小值 题目 给出一个整数,从该整数中去掉k个数字,要求剩下的数字形成的新整数经可能小。应该如何选取被去掉的数字? 其中整数的长度大于或等于k,给出的整数的大小可以超过long类型的数字范围。 举例:整数1593210,删除3个数字,新整数最小为1210;整数5674201,删除 阅读全文