美团笔试3.26

第一题思路:(AC)

由于输入的数字很长,用String接收,然后用hashMap记录数字对应关系。
(回复中有同学用数组代替hashMap,根据数组下标找对应转化后的数字,感觉更好一点(感谢Scale的解答))
注意的点:首位可能是+/-,做单独判断。
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String start = sc.nextLine();
    HashMap<Integer, Integer> nums = new HashMap<>();
    for (int i = 1; i <= 9; i++) {
        nums.put(i, sc.nextInt());
    }
    sc.close();
    StringBuilder sb = new StringBuilder();
    int i = 0;
    if(start.charAt(0) == '+' || start.charAt(0) == '-'){
        sb.append(start.charAt(0));
        i++;
    }
    for (; i < start.length(); i++) {
        sb.append(nums.get(start.charAt(i) - '0'));
    }
    System.out.println(sb.toString());
}    

第二题思路:(AC)

保证最外圈是黑环,所以最里圈可能是白色,根据输入数量n判断里圈是黑还是白,按两种方式求解。
注意的点:
  1. 输入的半径数组可能是无序的,如:1 3 5 2 4 8。所以要对接收的数组先排序,再计算;
  2. pi如果用3.1415926部分用例通不过,要用Math.PI。
  3. 保留小数点5位要记住这个方法:String.format("%.5f", res).
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int[] rs = new int[n];
    for (int i = 0; i < n; i++) {
        rs[i] = sc.nextInt();
    }
    sc.close();
    Arrays.sort(rs);
    double res = 0.0;
    if(n % 2 == 1) {
        res = rs[0] * rs[0];
        for (int i = 1; i < n; i++) {
            if (i + 1 < n) res += rs[i + 1] * rs[i + 1] - rs[i] * rs[i];
            i++;
        }
    }else {
        for (int i = n - 1; i >= 0; i--) {
            res += rs[i] * rs[i] - rs[i - 1] * rs[i - 1];
            i--;
        }
    }
    res *= Math.PI;
    System.out.println(String.format("%.5f", res));
}
第三题和第四题都是暴力解法,楼主只过了18,所以不贴代码,求大神解答。

第五题思路:(动态规划的思路,但只过了45)AC解请看评论区 @陈怡-miaow 的回复和 @牛客157007370号 的评论

  1. dp建一个k+1行、N列的数组;
  2. dp第一行数组的值就是输入的数组,第一列的所有值相等,都是dp[0][0];
  3. 递推公式:dp[i][j] = dp[i][j - 1] + dp[i - 1][j],即当前数字等于左边的数加上上面的数。
  4. 但这样写会出现内存超出情况,所以优化dp:只保留2行,第一行为上一次计算结果,第二行为目前计算的结果,当前计算结束后复制第二行到第一行
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int k = sc.nextInt();
    int[] a = new int[N];
    for (int i = 0; i < N; i++) {
        a[i] = sc.nextInt();
    }
    sc.close();
    long[][] res = new long[2][N];
    for (int j = 0; j < N; j++) {
        res[0][j] = (long) a[j];
    }
    res[1][0] = res[0][0];
    for (int i = 1; i < k + 1; i++) {
        for (int j = 1; j < N; j++) {
            res[1][j] = res[1][j - 1] + res[0][j];
        }
        for (int m = 1; m < N; m++) {
            res[0][m] = res[1][m];
        }
    }
    System.out.println(res[1][N - 1]);
}
#美团笔试##美团##笔试题目#
全部评论
第五题笔试时候没过,刚写出来,不知道能不能A,分享一下思路吧 例子给的是 4 3 1 0 0 0 逐行算出来是 1 1 1 1 1 2 3 4 1 3 6 10 观察一下每行最后一个数 1 = 1 4 = 4/1 10 = (4*5)/(1*2) 再多写几行 1 4 10 20 1 5 15 35 1 6 21 56 再看 20 = (4*5*6)/(1*2*3) 35 = (4*5*6*7)/(1*2*3*4) 56 = (4*5*6*7*8)/(1*2*3*4*5) 到这里规律已经很明显了 再试一下另外的输入 4 5 0 1 0 0 0 1 1 1 = 1 0 1 2 3 = 3/1 0 1 3 6 = (3*4)/(1*2) 0 1 4 10 = (3*4*5)/(1*2*3) 0 1 5 15 = (3*4*5*6)/(1*2*3*4) 再试一组有两个非0数的 4 5 1 1 0 0 1 2 2 2 = 1+1 1 3 5 7 = 4+3 1 4 9 16 = 10+6 1 5 14 30 = 20+10 1 6 20 50 = 35+15 把1换成2试试 4 5 2 2 0 0 2 4 4 4 2 6 10 14 2 8 18 32 2 10 28 60 2 12 40 100 和上面一个例子比比,每行最后全是二倍 就写到这儿了,差不多就这样 整个公式是个求和公式 (1) res = 0 (2) i from 0 to N-1 (3)     res = (C(N+K-1-i)(K-1-i)*a[i] + res)%1000000007 (4) print res //算法第三行里的C是排列组合里的组合
2 回复
分享
发布于 2020-03-26 22:00
本c++🐶不知道圆周率在哪,跪了
1 回复
分享
发布于 2020-03-26 21:30
联想
校招火热招聘中
官网直投
后三题跟楼主通过率一毛一样😂
点赞 回复
分享
发布于 2020-03-26 21:24
3,4,5都不会,哪位大佬救救孩子
点赞 回复
分享
发布于 2020-03-26 21:26
跟楼主一模一样 hh
点赞 回复
分享
发布于 2020-03-26 21:31
求指点第一题的样例三是什么意思啊?我没看懂。。
点赞 回复
分享
发布于 2020-03-26 21:33
第一题可以不用hashmap呀,直接用数组,根据数组下标找对应转化后的数字
点赞 回复
分享
发布于 2020-03-26 21:44
蹲楼,希望有大佬解决方案……
点赞 回复
分享
发布于 2020-03-26 21:48
第二题和lz代码几乎一模一样,就是没排序,好坑啊~
点赞 回复
分享
发布于 2020-03-26 21:54
第一题没想到还有个+号的情况,只过了91,😂
点赞 回复
分享
发布于 2020-03-26 22:04
ACM选手表示过了2.5🤣
点赞 回复
分享
发布于 2020-03-26 23:28
第五题是个杨辉三角形,然后得到递推公式,最后组合数取模。。组合数取模用费马小定理求逆元
点赞 回复
分享
发布于 2020-03-26 23:29
我感觉第一题和第二题我跟题主思路一样,要么是类型用错了,要么是没排序。😂😂😂真难受。。。
点赞 回复
分享
发布于 2020-03-27 00:08
求题目
点赞 回复
分享
发布于 2020-03-27 07:06
请问收到面试邀请了吗
点赞 回复
分享
发布于 2020-03-27 16:46
跟楼主一模一样。。😂 美团笔试感觉好难,题目都不太常规的感觉
点赞 回复
分享
发布于 2020-03-27 20:16

相关推荐

10 31 评论
分享
牛客网
牛客企业服务