2018秋招58同城笔试题分享

牛客牛友们,我又回来了,简历投了好几家,至今没有一家有消息,分享出去年做的58的试卷,换取一点好运气吧~

填空题

1、请找出以下数字序列的关系:10,10,15,30,75,225


2、以下程序输出是96__
图片说明

3、二叉树遍历,前序是DAGFMEHZ,中序是GAFDEMHZ,后序是GFAEZHMD

4、对于线性表(17,20,57,64,25,47,6,10)进行散列存储时,若选用H(K)=K%8作为散列函数,则散列地址为1的元素有3

5、设一组初始记录关键字序列为(25,15,27,99,18,35,14,66),则第一个关键字25为基准得到额一趟快速排序结果是_14,15,18,25,99,35,27,66

6、已知小顶堆:{51,32,73,23,42,62,99,14,24,3943,58,65,80,120},请问62对应节点的左子节点是73


7、木箱中有7种颜色的小球,第一次拿出一个小球记录颜色后放回木箱,第二次拿出一个小球记录颜色后放回木箱,求两次颜色相同的概率是1/7_

8、入栈序列是a1,a6,a5,a3,a4,a2,出栈序列是a5,a6,a3,a4,a2,a1,则栈的容量最小是3


简答题

1、写出下列程序的输出结果,并说明methodA作用
图片说明


2、A,B,C,D和E围坐在一张圆桌旁,B比她左边的邻座大12岁,E比他右边的邻座大5岁,C比她左边的邻座大14岁,D比他左边的邻座年轻5岁,他们5个人按照年龄从小到大依次为;D,E,A,C和B,D是16岁,B是40岁,他们5个人的年龄之和为135,请问,他们5个人就坐的顺序是怎么样的(从E开始按顺时针顺序)?他们的年龄分别是多少?简述推理过程

3、现在有AB二个job同时运行,Ajob是纯计算,完成依次时间是100ms,Bjob先计算IO等待,完成一次需要的计算时间是100ms,IO等待时间是200ms,A和B都可以同时执行多份,忽略线程开销等因素。
问题1:理论上,在单核服务器情况下,1s内Ajob最多能成功执行几次?
问题2:理论上,在单核服务器情况下,1s内Bjob最多能成功执行几次?请说明理由。(job从启动到结束代表一次成功执行)


4、写出叶的权分别为2,4,6,8,10的最优二叉树的结构图及其对应权值。(最优二叉树的结构图以前序遍历的结果表示)

5、在玩拼图游戏中,使用58*58个小正方形,拼成一个大正方形,大正方形***有多少个正方形并说明计算过程。


编程题

1、给定一个数组metrix,数组中只包含1和0,且数组中的1都不相邻,输入一个数n,问能否在将数组中n个0替代换成1后不破坏1都不相邻的条件。
例1 metrix=[1,0,0,0,1],n=1输出true
例2 metrix=[1,0,0,0,1],n=2输出false


2、石家庄学生A在北京上大学,今年准备骑行去学校,A每天骑行公里数有三种可能:10公里,20公里,30公里,一只石家庄距离北京300公里,请编程说明A骑行到学校有多少种组合。


应用题

58同城招聘业务中提供用户职业性格测试功能,该功能可简化分为二个步骤,一是用户答题,二是答题后用户提交答案并对用户进行职业性格分析,其中性格分析这步是把用户做题的结果实时传递给第三方机构,通过第三方机构分析后返回分析结果给用户。请设计一套服务来完成职业性格测试功能。已知该业务具有以下特征:
1)服务器是多核
2)部分用户答题后可能多次点击提交按钮,但是因为第三方机构按次收费,为了保证预算,每个用户的答题结果只能向第三方机构提交一次。
3)每次调用,第三方机构接口一定会返回结果。但是由于跨网传输,。可能会出现网络抖动的现象,延迟可能会在秒级。
4)需要实时调用第三方机构接口
5)招聘的流量较大,需要尽可能保证服务的处理能力,即每秒钟可能多支持用户参与答题测试。

#笔试题目##春招##秋招#
全部评论
加精
点赞 回复
分享
发布于 2018-03-16 18:10
点赞 回复
分享
发布于 2018-03-25 11:35
阅文集团
校招火热招聘中
官网直投
有答案吗
点赞 回复
分享
发布于 2018-03-30 20:00
第一题有什么规律呢
点赞 回复
分享
发布于 2018-04-07 15:31
请问后面大题有没有答案呢
点赞 回复
分享
发布于 2018-07-02 09:41
编程1 public static boolean isCan(int[] a, int n) {         int len = a.length;         int c = a[0] == 0 ? 1 : 0;         int count = 0;         for (int i = 1; i < a.length; i++) {             if (a[i] == 1) {                 if (c > 2) {                     count += (c - 1) / 2;                     c = 0;                 }             } else {                 c++;             }             if (count >= n) {                 return true;             }         }         return false;     } 编程2     public static int perfectBag(int n, int a[]) {         int[] f = new int[n + 1];         f[0] = 1;         for (int i = 0; i < a.length; i++) {             for (int j = a[i]; j <= n; j++) {                 f[j] += f[j - a[i]];             }         }         return f[n];     }
点赞 回复
分享
发布于 2018-08-15 20:39
我的答案:225;96(结构体里字节对齐);GFAEZHMD;3;14,15,18,25,99,35,27,66;73(3943应该是分开为39、43);1/7;3。 1、求十进制数转化为二进制后1的个数(剑指offer里面有) 2、EABCD 3、(1)10次;(2)3次(300ms一个周期,应该不能考虑没有IO就计算的情况) 4、构造哈夫曼树:ASL=2*4+4*4+6*3+8*3+10*3=102 5、正方形个数1^2+2^2+ ... + 58^2 = 58*(58+1)*(2*58+1)/6=66729
点赞 回复
分享
发布于 2018-08-28 09:41
编程1:正常情况下连续0的个数和能插入的个数关系(n-1)/2;开头和结尾n/2。 编程2:类似与跳台阶,n=30,每次可以跳一次、两次和三次。用递归来写,f(1)=1、f(2)=2、f(3)=4、f(n)=f(n-1)+f(n-2)+f(n-3)。
点赞 回复
分享
发布于 2018-08-28 09:55
编程题: 1.  public static Boolean metrix(int [] metrix,int n) {         int count = 0;         int maxCondition = 0;         boolean firstForEachWithNoAppOne = true;         for (int number : metrix) {             if(number == 1) {                 if(firstForEachWithNoAppOne == true) {                     if(count >= 2) {                         maxCondition += (count/2);                     }                     firstForEachWithNoAppOne = false;                     count = 0;                 }                 if(count >= 3 && firstForEachWithNoAppOne == false) {                     if(count % 2 == 1) {                         maxCondition += (count/2);                     }else {                         maxCondition += (count/2 - 1);                     }                 }                 count = 0;             }else {                 count ++;             }         }         if(count >= 2) {             maxCondition += (count/2 );         }                  return n <= maxCondition ? true : false;     } 2.  91种 public static int Comp() {         int count = 0;         for(int i = 0 ; i <= 30 ; i ++) {             for(int j = 0 ; j <= 20 ; j++) {                 for(int k = 0 ; k <= 10 ; k ++) {                     if(i*10 + j*20 + k*30 == 300) {                         count ++;                         System.out.println("十公里: " + i +" 二十公里:  "+j + "三十公里:  " +k);                         break;                     }                     if(i*10 + j*20 + k*30 > 300) {                         break;                     }                 }             }         }         return count;     }
点赞 回复
分享
发布于 2018-08-31 15:02

相关推荐

点赞 88 评论
分享
牛客网
牛客企业服务