搜狗后端笔试第二场

第二题,题目是先给一组长度为N的全0数组,然后输入M行,每行两个数字L,R,将LR区间内(包含LR)的所有数修改为i(1<=i<=M),最后将这数组中数字按照0*a[0]+1*a[1]+……N-1*a[N-1]求和,再与100000009做模运算,得出结果,有没有大佬帮忙看看为啥我这代码提交0ac。。。。
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int M = in.nextInt();
        int i = 1;
        int result = 0;
        List<Integer[]> lr = new ArrayList<>(M);
        Map<Integer,Integer> finished = new HashMap<>(M);
        while(i<=M){
            Integer[] tmp = new Integer[2];
            tmp[0] = in.nextInt();
            tmp[1] = in.nextInt();
            lr.add(tmp);
            i++;
        }
        //最后一轮修改的值逆着往回倒,已修改过的即为最终值,加入map中,之后不再修改
        for(i = M-1;i>=0;i--){
            int L = lr.get(i)[0];
            int R = lr.get(i)[1];
            for(int j=L;j<=R;j++){
                if(!finished.containsKey(j)){
                    result += (i+1)*j;
                    finished.put(j,0);
                }
            }
        }
        result = result % 100000009;
        System.out.println(result);
    }
}


#搜狗##笔试题目#
全部评论
result改成long,能过30
点赞 回复 分享
发布于 2019-09-16 21:04

相关推荐

不愿透露姓名的神秘牛友
07-30 11:29
真的很糟糕:都不当人了
点赞 评论 收藏
分享
真的很糟糕:一般说看能力给工资意思就是给不起的借口
点赞 评论 收藏
分享
机械打工仔:不管啥专业,找工作改简历的第一课先把你那排版改了,简历上不要写个人简历四个字,找你要简历的谁不知道这个是简历?而且还占那么多空间,直接把自己名字和基础信息写上面,整体字体大一些。 还有这种经典两页简历一页大空白,导出PDF的时候多了一页几乎全是白的你自己看着不难受吗随手的事为啥不能改掉呢,这是态度问题,你试想一下你是HR你打开简历看到格式都没调整过会是什么感受?你自己都不重视你的简历,HR更不会在意。 然后内容你那个做两年咖啡就别往里写了,简历在精不在多,你在往你的简历里打字的时候就要想好这东西对你要找的工作有没有帮助。自我评价写一行就行了,不如给专业技能单开一栏。核心课程均分90这个真别写了,把你上过的有用的专业课列出来也行。有很多地方废话很多的精炼一下,比如你校内项目第一个写的那些,全然没有重点。 好好修改一下,我看你内容也挺优秀的,别被一个随便做的简历耽误了,我一个同专业的打工人看了都揪心更别说一天看几百份简历的HR
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务