
2021美团笔试题整理.doc
8页整理了 10 道美团笔试真题,来试试自己水平有多厉害吧1、小美是美团的一名鲜花快递员,鲜花是一种保质期非常短的商品,所以需要尽快送 到客户手中,公司对于骑手的一个要求就是要规划送花的线路,使得骑手送完所有订单走的 路程尽可能少骑手开始派送时带走了所有需要派送的花,不必每单后返回花店,路程结 算是从花店出发,到送完最后一名客户为止,不计算从最后一名客户家回到花店的时间)公司对于骑手的绩效评价是取决于两个指标,一是从花店到所有客户地址的距离之和, 另一个是骑手实际走的路程设花店始终位于 1 号位置,客户共有 n-1 个,其编号为 2~n为了简化问题,我们约束 这 n 个位置构成的是一棵树,即只有 n-1 条边在其中互相连接,且保证 n 个点彼此连通输入描述:输出第一行包含一个正整数 n,即花店和客户的总数1<=n<=30000)接下来有 n-1 行,每行有三个整数 u,v,w,表示在 u 和 v 之间存在一条距离为 w 的道路 (1<=w<=1000)输出描述:输出包含两个整数,中间用空格隔开,分别表示花店到所有客户地址的距离之和和骑手 实际走的路程答:import java.util.*;public class Main{public static void main(String[] args){Scanner s= new Scanner(System.in);int n=s.nextInt();int alldis=0;ArrayList
很显然这就需要一个计算器了,小美拥有了一些商户的评价数据,希望可以计算出商家在客户 端上显示出的评分这个评分的计算非常简单,就是对该商家的所有客户的星级评价做求一个平均,然后去 尾法显示小数点后的一位即可,例如平均得分是 3.55,则显示的是 3.5例如某商家获得了 1-5 星评价各一个,则显示的评分是(1+2+3+4+5)/5=3.0如果商家没有获得评价,则显示 0.0答:import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String[] s = sc.nextLine().split(" ");float res = 0;int sub = 1;float sum1 = 0;float peopleNum = 0;for(String child:s){sum1 += Integer.parseInt(child) * sub;peopleNum += Integer.parseInt(child);sub ++;}res = sum1 / peopleNum;System.out.println(String.valueOf(res).substring(0,3));}}3、小团最近对逆序数(将一个数字逐位逆序,例如 1234 的逆序数为 4321,1100 的逆 序数为 11)特别感兴趣,但是又觉得普通的逆序数问题有点太乏味了。
于是他想出了一个新的定义:如果一个数的 4 倍恰好是它的逆序数,那么称这两个数是 新定义下的逆序对接下来给定一正整数 n,问:不超过 n 的正整数中有多少对新定义下的 逆序对?答:import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main {public static void main(String[] args){Scanner in = new Scanner(System.in);int n= in.nextInt();int ans=0;List
记录是按 时间顺序给出的,已知一次旅行的线路一定是一个闭环,即起点和终点是同一个地点因此 当每找到一段闭合的行程,即认为完成了一次旅行数据保证不会出现不在闭环路径中的数 据请你在小团的购票记录中统计出他全年共进行了多少次旅行?答:import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;public class Main{public static void main(String[] args)throws IOException{int sum =0;int flag=0;String target=null;BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int number =Integer.parseInt(br.readLine().trim());for(int i=0;i 有三种搭配方式,一条领带和一件衬衫,一条裤子和一件衬衫,一个帽子和一件衬衫 卖出一套领带加衬衫可以得到 e 元,卖出一套裤子加衬衫可以得到 f 元,卖出一套帽子加衬 衫可以得到 g 元现在你需要输出最大的获利方式答:import java.util.*;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);int[][] money=new int[3][2];money[0][0]=sc.nextInt();money[1][0]=sc.nextInt();money[2][0]=sc.nextInt();int d=sc.nextInt();money[0][1]=sc.nextInt();money[1][1]=sc.nextInt();money[2][1]=sc.nextInt();long sum=0;Arrays.sort(money,new Comparator
