简答题:1、请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在中所处的位置和变化。队伍可能随时有人加入和退出,当有人退出影响到用户的位置排名时需要即时反馈到用户。
2、a、b两个整数集合,设计一个算法求他们的交集,尽可能的高效。
博主能力有限,不是所有题目都会求解,第1题不是我的擅长,这里贴出来让大家知道腾讯的考题。我的重点放在第2题上面!)
第2题题解(个人见解,仅供参考!)
思路1:排序法。
对集合a和集合b进行排序(升序,用快排,平均复杂度o(n*logn)),设置两个指针p和q,同时指向集合a和集合b的最小值,不相等的话移动*p和*q中较小值的指针,相等的话同时移动指针p和q,并且记下相等的数字,为交集的元素之一,依次操作,直到其中一个集合没有元素可比较为止。
优点:操作简单,容易实现。
缺点:使用的排序算法不当,会耗费大量的时间,比如对排好序的集合使用快排,时间复杂度是o(n2)这种算法是大家都能比较快速想到的办法,绝大多数时间放在了对集合的排序上,快排的平均复杂度是o(n*logn),对排好序的集合做查找操作,时间复杂度为o(n),当然这种算法肯定比遍历要快多了。
code:#include
#include
#define m 8
#define n 5
int cmp(const void *a, const void *b)
int main(void);
int b
/对数组a和数组b进行快排。
qsort(a, m, sizeof(int), cmp);
qsort(b, n, sizeof(int), cmp);
/findintersection(a, b);
int i = 0, j = 0;
int cnt = 0;
int result[m n ? m : n];/保存集合的结果。
/设置i、j索引,分别指向数组a和b,相等则同时移动,不相等则移动较小值的索引。
腾讯笔试题目
腾讯是国内数一数二的it企业了。那么每年想要进入腾讯公司的应聘者也是络绎不绝。那么一个好的笔试答卷绝对是脱颖而出的亮点。现在就来看看腾讯笔试题都有哪些内容吧。腾讯笔试题 const的含义及实现机制。const的含义及实现机制,比如 const int i,是怎么做到i只可读的?const用来说明所定...
腾讯笔试题目
1.1 20的两个数把和告诉a,积告诉b,a说不知道是多少,b也说不知道,这时a说我知道了,b接着说我也知道了,问这两个数是多少?答案 2和3 2 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少?3,计算 a b 2 答案 运算符优先级 括号,下标,和。成员 最高 单目的比双目的高 算术双目...
腾讯笔试题目汇总
一 网上收集资料 1 有a卷b卷,各六十分,a卷基本是软件测试的知识和一点点计算机网络一点点智力题。tcp的三次握手 b卷基本是c 和数据结构,其实并不难,但是出来才发现有不少地方没有考虑周全,2 笔试时间为2个小时,开发和测试的题目是一样的。考查的知识点主要是c 数据结构和算法,题型包括选择题 填...