該方法應返回兩個數組中找到的最小類似值。它的工作原理與此輸入: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