拼多多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,否则为给球星的序号。 【通过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块的字典序最小的靓号)
#拼多多##笔试题目##秋招#