Java HackerRank缺少数字

Java HackerRank缺少数字,java,arraylist,iterator,Java,Arraylist,Iterator,我正在尝试解决这个网站的一个任务,这里是 样本输入 十, 203 204 205 206 207 208 203 204 205 206 十三, 203 204 205 206 207 205 208 203 206 205 206 204 样本输出 204 205 206 解释 Number203 Before removing number from second arraylist : [203, 204, 204, 205, 206, 207, 205, 208, 203, 20

我正在尝试解决这个网站的一个任务,这里是

样本输入

十,

203 204 205 206 207 208 203 204 205 206

十三,

203 204 205 206 207 205 208 203 206 205 206 204

样本输出

204 205 206

解释

    Number203
Before removing number from second arraylist : [203, 204, 204, 205, 206, 207, 205, 208, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 204, 205, 206, 207, 205, 208, 203, 206, 205, 206, 204]
Number204
Before removing number from second arraylist : [204, 204, 205, 206, 207, 205, 208, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 205, 206, 207, 205, 208, 203, 206, 205, 206, 204]
Number205
Before removing number from second arraylist : [204, 205, 206, 207, 205, 208, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 206, 207, 205, 208, 203, 206, 205, 206, 204]
Number206
Before removing number from second arraylist : [204, 206, 207, 205, 208, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 207, 205, 208, 203, 206, 205, 206, 204]
Number207
Before removing number from second arraylist : [204, 207, 205, 208, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 205, 208, 203, 206, 205, 206, 204]
Number208
Before removing number from second arraylist : [204, 205, 208, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 205, 203, 206, 205, 206, 204]
Number203
Before removing number from second arraylist : [204, 205, 203, 206, 205, 206, 204]
After removing number from second arraylist : [204, 205, 206, 205, 206, 204]
Number204
Before removing number from second arraylist : [204, 205, 206, 205, 206, 204]
After removing number from second arraylist : [205, 206, 205, 206, 204]
Number205
Before removing number from second arraylist : [205, 206, 205, 206, 204]
After removing number from second arraylist : [206, 205, 206, 204]
Number206
Before removing number from second arraylist : [206, 205, 206, 204]
After removing number from second arraylist : [205, 206, 204]
204 205 206
204在两个阵列中都存在。它在A中的频率为2,而 B中的频率为3。类似地,205和206在同一时间出现两次,但 这三个数字是我们的输出。其余的 数字在两个列表中的频率相同

在我通过第0、第2和第3个测试用例的4个用例中,有4个测试用例,但是第一个测试用例给了我错误的输出,第四个测试用例给了timedout错误。请建议我好的算法或逻辑来解决这个任务。请帮助我的朋友

对不起,我英语不好,请原谅我

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> al = new ArrayList<Integer>();
        ArrayList<Integer> al1 = new ArrayList<Integer>();
        int size1 = sc.nextInt();
        for( int i = 0 ; i < size1 ; i++){
             al.add(sc.nextInt());
        }


        int size2 = sc.nextInt();
        for( int i = 0 ; i < size2 ; i++){
             al1.add(sc.nextInt());
        }

        Iterator<Integer> ir = al.iterator();
        while(ir.hasNext()){

            int num = ir.next();
            System.out.println("Number"+num);
            if( al1.contains(num) ){
                System.out.println("Before removing number from second arraylist : "+ al1);
                al1.remove(new Integer(num));
                System.out.println("After removing number from second arraylist : "+ al1);
            }
        }
        Collections.sort(al1);
        for(int i : al1)
        System.out.print(i+" ");
    }
}

由于使用ArrayList,解决此问题的简单方法如下:

for (Integer i : al) { // This loops through the array.
    al1.remove(i);
}

// Now al1 have the desired elements, now all you have to do is put them in order.
它不是最有效的,但它是我现在能想到的最简单的代码


注意:我会使用removeAll,但我不确定它对副本的作用。

请在投票否决该问题之前真诚地说明原因。这是我诚挚的请求。糟糕的英语并不坏。罪恶不是借口。为了帮助我们,请显示代码失败的测试用例——预期和实际输出。这是第一个测试用例的输入和输出文件。您似乎没有删除结果中的重复项。请编辑您的问题以添加测试用例。使阅读和理解问题变得容易。