该方法应返回两个数组中找到的最小类似值。它的工作原理与此输入:Java算法错误
int[] C={1,3,2,1};
int[] D={4,2,5,3,2};
public static int getSmallestSimilar(int[] C, int[] D) {
int n = A.length;
int m = B.length;
Arrays.sort(A);
Arrays.sort(B);
int i = 0;
for (int k = 0; k < n; k++) {
System.out.println(B[i] +"::"+ A[k]);
System.out.println(i +"::"+ k);
if (i < m - 1 && B[i] < A[k])
i += 1;
if (A[k] == B[i])
return A[k];
}
return -1;
}
不幸的是,它不与该输入工作:
int[] A={15,9} and int[] B={6,9,3};
我试图解决问题,但我不能,请帮忙
它不依赖于数组的大小可能与差异的大小,?我怎么能解决? –
另一个问题,在同一行中 - 您提前B的索引,但只有一次。你可能会(如在这种情况下)前进到另一个也小于A值的B值。所以......考虑你是否想要一个最多执行一次的'if'语句或另一种可以执行多次的语句。 –
@SalahBenAtwa - 它取决于数组大小。线部分:“如果我
Dakoda