题解 | #值周#

值周

https://ac.nowcoder.com/acm/problem/24636

暴力会超时,在这里使用前缀和。


import java.util.Scanner;

public class Main{
    public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int n = sc.nextInt();
        int []a = new int[N+1];
        int []sum = new int[N+1];
        for(int i = 0;i<n;i++){
            int start = sc.nextInt();
            int end = sc.nextInt();
            a[start]++;
            if(end+1<N+1)     a[end+1]--;
        }
        sum[0]=a[0];
        int ans = 0;
        for(int i=1;i<N+1;i++){
            sum[i] = sum[i-1]+a[i];
            if(sum[i]==0){
                ans++;
            }
        }
        if(a[0]==0){
            ans++;
        }
        System.out.println(ans);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务