美团8.29笔试第二题有问题吧

说的是一定保证可以放入,但是最后一个数据第一个宽度数组有数据大于 第二个数组的最大值了都,无语了,调了好久,特判下过了
package xiao;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Arrays;
import java.util.Scanner;

/**
 * @author fancy
 * @date 2021/8/29 11:11
 */
public class Test2 {
    static int n;
    static int a[] = new int[100010];
    static int b[] = new int[100010];
    static int mod = (int) (1e9+7);
    static long ans = 1;
    public static void main(String[] args) throws IOException {
        StreamTokenizer re = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
        re.nextToken();
        n = (int)re.nval;
        for(int i = 1;i <= n;i++){
            re.nextToken();
            a[i] = (int) re.nval;
        }
        for(int i = 1;i <= n;i++){
            re.nextToken();
            b[i] = (int) re.nval;
        }
        Arrays.sort(a,1,n+1);
        Arrays.sort(b,1,n+1);
        int index = 1;
        for(int i = 1;i <= n;i++) {
            if(a[i] <= b[index]) a[i] = n-index+1;
            else {
                        // a[i] > b[index] 的时候让index++    可是这个index居然会大于n ?? 离谱
                index++;
                i--;
            }
            if(index == n) { // 特判下就过了
                i++;
                for(int j = i;j <= n;j++) a[j] = 1;
                break;
            }
        }
        int cnt = 0;
        for(int i = n;i >= 1;i--) {
            ans = (ans * (a[i] - cnt)) % mod;
            cnt++;
        }
        System.out.println(ans);
    }
}     


#美团笔试##美团##笔经#
全部评论

相关推荐

点赞 评论 收藏
分享
断电再接线:1. 简历排版方面,你这内容比较少,一页放完。各模块之间建议用明显的分隔线分开,现在一眼看上去非常乱。教育经历留白太多。项目经历格式不统一。 2. 第一个项目,硬件设计太笼统,硬件架构规划是指板级电路设计还是FPGA逻辑设计?FPGA时序逻辑设计具体指的什么?实现的三个低速协议以及使用协议进行控制时序,是指什么? 3. 第二个项目,我觉得你可以和第一个项目整合一下,合并为一个项目。第二个项目说实话随便买个zynq开发板都有一直petalinux的教程,作为一个独立的项目不合适的,更像是一个小作业。 4. 第三个项目,项目内容这里,其实和环境搭建之类的东西提一嘴就好了,环境准备和编译安装工具链这种东西没多大必要写,实在要写的话可以 说 使用docker 独立sdk环境之类的。你说的这个工具我没用过,我用的比较多的是busybox和buildroot,是基于menuconfig进行配置的,如果scratch也是类似的模式的话,那我觉得这个项目也经不起细推。你可以往内核裁剪那方向靠,我说的这两个工具你也可以看看。 5. 你熟悉这些接口时序的话,你可以进一步去看一下驱动开发,然后面试的时候突出这个作为重点。第三个项目也可以将驱动开发给补充进去。因为单编内核和构建文件系统,其实很多时候是体力劳动。 6. 特长这里,独立成一个荣誉奖项的模块,把你获得的奖学金和竞赛奖项放一起。数模的话,写了国赛,美赛就不用写了。 7. 总的来说可以了,你简历上写的东西你只要都熟悉,找个实习还是没问题的。 8. 嵌入式分为硬件,底层软件和应用软件,看你的经历我建议你往底层靠,多去熟悉常用的通信接口,去看内核和驱动,网络编程这块也可以去了解一下。然后去**刷刷hot100
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务