我對編程非常陌生。我需要使用給定的整數數組有效地找到K互補對。我寫了下面的代碼。它包括重複。我需要消除這種重複。所以請幫助我刪除重複,並請建議是否有更好的方法來做到這一點。使用給定的整數數組有效的K互補對
public class KComplexityOfArray {
public static StringBuffer oldFunction(int arr[], int k) {
int result = 0;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (i != j && arr[i] + arr[j] == k) {
sb.append(arr[i] + "," + arr[j]);
result++;
}
}
}
System.out.println(result);
return sb;
}
public static void main(String[] args) {
int[] intArray1 = new int[]{4, 5, 6, 3, 1, 8, -7, -6, 7};
int[] intArray2 = new int[]{1, 2, 7, 5, 6, 3};
int[] intArray = new int[]{4, 5, 6, 3, 1, 8, -7, -6};
int k = 9;
System.out.println("No of k complementary pairs : " + oldFunction(intArray2, k));
}
}
請人幫助我理清了這一點。由於
int j = arr.length - 1;對於(int i = 0; i
Dilee
循環內部的'i ++'是錯誤的,因爲'i ++'無論如何會在'for'循環結束時發生,最終導致'i'的雙重增量。改用'while(i
我試過了,它結束了內存不足的錯誤。 int j = arr.length - 1; int i = 0; (arr [i] + arr [j] == k){({「{」+ arr [i] +「,」+ arr [j] +「}}(i
Dilee