首页 > 美团8.29笔试第二题有问题吧
头像
fancy。
发布于 2021-08-29 12:07
+ 关注

美团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);
    }
}     


全部评论

(0) 回帖
加载中...
话题 回帖