我在学校的计算机科学课上,我坚持这个问题.并且甚至不能真正想出如何解决它的想法.
这是一个字一个字:编写一个静态方法contains,它接受两个整数数组a1和a2作为参数,并返回一个布尔值,表示a2的元素序列是否出现在a1中(对于是,为true,对于no为false).a2中的元素序列可以出现在a1中的任何位置,但必须以相同的顺序连续出现.例如,如果名为list1和list2的变量存储以下值:
int[] list1 = {1, 6, 2, 1, 4, 1, 2, 1, 8};
int[] list2 = {1, 2, 1};
Run Code Online (Sandbox Code Playgroud)
然后调用contains(list1, list2)应该返回true,因为list2的值序列{1, 2, 1}包含在list1中的list1中.如果list2存储了值{2, 1, 2},则调用contains(list1, list2)将返回false,因为list1不包含该值序列.任何两个具有相同元素的列表都被认为是相互包含的,因此调用contains(list1, list1)应该返回true.
您可以假设传递给您的方法的两个数组的长度至少为1.您可能不会使用任何字符串来帮助您解决此问题,也不会使用生成字符串的方法(如Arrays.toString).
如果有人能指出我正确的方向,这将是伟大的.
这也是我提出的一次尝试,但它没有足够数量的测试
public static boolean contains(int[] set1, int[] set2) {
boolean contains = false;
for (int i = 0; i < set1.length; i++) {
for (int a = 0; a < set2.length - 1; a++) {
if (set1[i] == …Run Code Online (Sandbox Code Playgroud)