如何检查数组的元素序列是否出现在另一个给定的数组中?

时间:2015-12-09 21:05:09

标签: java arrays

所以,问题如下:

编写一个接受两个整数数组a1a2作为参数的方法,并返回一个布尔值,表示a2的元素序列是否出现在a1(如果为true则打印“是”,否则打印“否”)。 a2中的元素序列可能出现在a1中的任何位置。例如,如果名为list1list2的变量存储以下值:

int[] list1 = {1, 6, 2, 1, 4, 1, 2, 1, 8}
int[] list2 = {1, 2, 1}

然后您的方法应该返回true,因为list2的值序列{1,2,1}包含在list1中。

您可以假设传递给您的方法的两个数组的长度都至少为1.您可能不会使用任何字符串来帮助您解决此问题,也不会使用生成字符串的方法,例如Arrays.toString

到目前为止我做了什么:

public static boolean itAppears(int[] A, int[] B)
{
    int count = 0;

    for(int i = 0; i < B.length; i++)
        for(int j = 0; j < A.length; j++)
            if(B[i] == A[j])
                count++;

    if(count == B.length)
        return true;

    return false;
}

我在使用此代码时遇到了一些问题,因为它没有给我所需的输出。我知道问题在哪里。例如,在给定的示例中,list2的第一个元素(即1)在list1中出现4次,因此计数给出4,这不等于list2的长度因此产出不给我。但我对如何修复它绝对无能为力,所以如果有人能给我一些提示,我们将不胜感激!

0 个答案:

没有答案