手机分配短讯id的面试题目.docVIP

  • 5
  • 0
  • 约1.62万字
  • 约 23页
  • 2017-12-24 发布于河南
  • 举报
手机分配短讯id的面试题目

问题分析 原来的问题是要从一个无序ids数组里分配一个id。我们可以用数学方式去更清楚地说明这个问题。 设m = 256 为所有id的个数,集合为所有id的集合。那么,给定一个已分配id的集合,(即参数ids),本题目可表示为,求一个(即传回的id),符合条件: 减号是补集的意思,即x属于U但不属于A。上回的对答已确定?,即必然存在。此外,这个条件又可以写成: 以上两种表达式可说明此问题的两种解法,一种编程方向是查找U集里有没有不属于A的id,而另种是计算A的补集再取出其中一个id。 实现程序之前,如果可以,应先写测试函数。笔者认为,若面试者在情况容许下,也可在解答题目之前,写下测试程序。如果有多个面试者能同样解题,或许同时写下测试程序的面试者能脱颖而出。 为了简单起见,笔者使用了assert()来检测正确性,只于Debug版本有效。而Release版本则用来测试效能。 由于U集合的子集合很多,?,不可能穷举所有可能集合。所以,只能够举出随机的集合以作测试。 以下是一些常数(宏)及类型声明,TEST_COUNT是测试次数,而TEST_REPEATCOUNT是为了测试效能时,重覆测试的次数(即Release版本会调用测试函数一百万次): 1 2 3 4 5 6 7 8 9 10 11 12 13 #define M 256 // ID的数目,且所有ID在[0, M)的区间内 ? #d

文档评论(0)

1亿VIP精品文档

相关文档