蒟蒻求助
查看原帖
蒟蒻求助
981981
little_whitezzz楼主2024/3/13 13:00

为嘛我这样子还会超时

import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main {
    static int N = 50010;
    static int[] sum = new int[N];
    static int[] first = new int[N];
    static int[] last = new int[N];
    public static void main(String[] args){
        Scanner sc = new Scanner(new BufferedInputStream(System.in));
        int n = sc.nextInt();
        for(int i = 1;i <= n;i ++){
            int a = sc.nextInt();
            sum[i] = (a + sum[i - 1]) % 7;
        }
        for(int i = n;i >= 0;i --)
            first[sum[i]] = i;
        for(int i = 0;i <= n;i ++)
            last[sum[i]] = i;
        //直接枚举答案
        int max = 0;
        for(int i = 0;i <= 6;i ++)
            max = Math.max(last[i] - first[i], max);
        System.out.println(max);
    }
}
2024/3/13 13:00
加载中...