拼多多java岗7.22笔试题


1、ABCD四个人排队喝可乐,喝完一个变两个,再到队尾继续排队,求第N个喝可乐的是谁?
思路:喝 i 次可乐的人最多为 a(i),则,a(0) = 4,.a(i) = a(i-1)*2;   找出满足 的n,将a(i)四等分为四个区间,判断N在哪一个区间,则可知为ABCD哪一个人。【通过100%】

2、M 个人给 N 个球星评级,共a-z26个级别,a最高,z最低,球星X比球星Y评级高的次数  大于 球星Y比球星X评级高的次数,则球星X强于球星Y,若有一个球星强于其他所有球星,则为球王,否则没有球王。有则返回序号,无则为-1
思路:用冒泡排序的思路,依次遍历所以球星,找出最大的一个,若遇到相等的,记录下来,如果最后最大那个球星有相等的记录,则为-1,否则为给球星的序号。 【通过70%】,这个思路解决不了例子2这种球星0>球星1,球星1>球星2,球星2>球星0的情况。
例子1:M=3,N=4;评价为:acbd;bacd;bdca;输出为:0
例子2:M=3,N=3;评价为:abc;bca;cab;输出为:-1

3、N个货物分别重W1、W2、...Wn,(100<=W<=300),一辆车可以运重量300的货,问需要多少辆车。
思路:先从小到大排序,i、j两个指针,i从0开始遍历去掉3的整数倍个100(每三个100增加一辆车),j从N-1开始去掉大于200的数(大于200的自己一辆车),i、j所指的货物若可以拼车,车数加一,i、j向中间移动,否则,车数加一,j向中间移动。【通过100%】

4、N位手机号若有K位相同则为靓号,已知一个手机号,求改成靓号的钱最少的情况。
1)由1改为6,或由6改为1,花5块钱;2)6位手机号允许000123;3)输出字典序最小的靓号
思路:不会【求大佬分享思路
例子: N =6,K=5,输出:4 ,777577(对应最少钱4块的字典序最小的靓号)
#拼多多##笔试题目##秋招#
全部评论
难受,每道题都是a出一半,无法通过
点赞 回复 分享
发布于 2018-07-22 22:15
票选球王思路: 定义两个二维char型数组input和output(类型为vector<vector<char>>),一个二维数组input用来存放输入的字符串,然后将二维字符串数组行列倒置存入第二个数组output中,则output字符串数组中的每一个字符串str为每个选票人队每个候选球星的评定等级。将每个字符串str从小到大排序(即按字母顺序'a'在最前,'z'在最后,str最小即等级最高),比较每个str的大小,如果仅有唯一一个最小的字符串,则其对应的候选球星为球王,返回字符串索引;如果最小的字符串不止一个,则不存在球王,返回-1。 票选球王代码链接:https://blog.csdn.net/lizhentao0707/article/details/81159859
点赞 回复 分享
发布于 2018-07-22 23:21
第三题思路有问题吧,如果是这个思路的那100,100,100,200,200,200这种情况按你的思路就是4辆车,但正确答案是3辆车。
点赞 回复 分享
发布于 2018-07-23 16:33

相关推荐

点赞 评论 收藏
分享
评论
点赞
35
分享
牛客网
牛客企业服务