所以,问题如下:
编写一个接受两个整数数组a1
和a2
作为参数的方法,并返回一个布尔值,表示a2
的元素序列是否出现在a1
(如果为true则打印“是”,否则打印“否”)。 a2
中的元素序列可能出现在a1
中的任何位置。例如,如果名为list1
和list2
的变量存储以下值:
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
的长度因此产出不给我。但我对如何修复它绝对无能为力,所以如果有人能给我一些提示,我们将不胜感激!