计算java中区间并集覆盖的整数数

计算java中区间并集覆盖的整数数,java,integer,union,hashset,Java,Integer,Union,Hashset,我在接受Hackerrank的在线挑战,有一个问题是如何找到区间的并集覆盖了多少个整数。基本上,对于示例testcase 1,见下图,在两行中,从第一行1-3,我们可以得到整数1,2,3,从第二行,我们可以得到9,10,11,12。因此,最终输出应该是1,2,3,9,10,11,12,所以它将打印出7作为最终输出。但是,更多信息请参见下面的我的实现。当我提交代码时,我通过了所有测试用例,除了5个由于超时问题而导致的测试用例外,没有任何错误。所以,我只是想知道是否有人可以给我一些关于我的代码有什么

我在接受Hackerrank的在线挑战,有一个问题是如何找到区间的并集覆盖了多少个整数。基本上,对于示例testcase 1,见下图,在两行中,从第一行1-3,我们可以得到整数1,2,3,从第二行,我们可以得到9,10,11,12。因此,最终输出应该是1,2,3,9,10,11,12,所以它将打印出7作为最终输出。但是,更多信息请参见下面的我的实现。当我提交代码时,我通过了所有测试用例,除了5个由于超时问题而导致的测试用例外,没有任何错误。所以,我只是想知道是否有人可以给我一些关于我的代码有什么问题的反馈。谁能修改我的代码来解决我的超时问题

提前谢谢


因为L和R的范围从0到100000000。 所以,100000000*100000肯定会得到TLE。 你必须避免内环。 我的想法是

对所有间隔进行排序 循环通过间隔和Li 希望它能起作用
如果我以后管理时间,我将为您编码

我认为简单易行的解决方案是将所有间隔数放入哈希集中,然后重复,然后您只需获得哈希集的大小,即您选择接受HackerRank挑战的联合数间隔数

,因此需要找到解决方案的是您,不是我们。你的代码甚至没有编译@安德烈亚斯,我认为你没有抓住重点!你知道Stackoverflow是怎么回事吗?这是一个平台,在这里学习编程的人可以询问我们的问题/错误,而不是发布所有正确的解决方案。另外,我的代码不会编译,因为里面没有主函数。您只需复制我的代码并将其粘贴到public void主线下,它就会编译。此外,如果你不能帮助解决我的问题,甚至不要写信和评论,除非你能提供良好的反馈!是的,我知道StackOverflow是怎么回事。如果你查看我的代表,你应该意识到我可能至少和你一样了解。-2任何人都可以修复我的代码不是请求帮助解决问题,而是请求为你编写代码,也就是为你解决挑战。-3你的代码无法编译,因为nextInt是一个方法,而不是一个字段。你错过了。-4我写评论是为了告诉你为什么我否决了你的问题,作为一种礼貌,也称为良好的反馈。谢谢你的伪代码。我很感激。我相信当输入太大时,我收到了超时问题。对所有间隔进行排序意味着在日志n上。-如果输入间隔为1-10,3-6,第2步将导致1-10,11-6,第4步计算10-1+1+6-11+1=10+-4=6,这不是正确答案。-下限为1,不是0。-我将为您编写代码。这是OP要解决的一个挑战。如果你想自己解决这个问题,那很好,但是把挑战留给别人自己去解决。-否则,答案不错+1嗨,Andreas,谢谢你的评论,我还没有考虑过这种类型的1-10、3-6案例
Hashset <Integer>mytree = new HashSet<Integer>();
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for(int i=0;i<N;i++){
    int Li = sc.nextInt;
    int Ri = sc.nextInt;
    int current =Li;
    while(current<Ri){
        mytree.add(current);
        current++;
    }
 }

 System.out.println(mytree.size());