Ich bin sehr neu in der Programmierung. Ich muss die K-komplementären Paare unter Verwendung eines gegebenen Arrays von ganzen Zahlen effektiv finden. Ich habe den folgenden Code geschrieben. Es beinhaltet die Vervielfältigung. Ich muss diese Duplizierung beseitigen. Bitte helfen Sie mir, diese Duplizierung zu entfernen und schlagen Sie bitte vor, ob es einen effizienteren Weg gibt, dies zu tun.K-komplementäre Paare mit gegebenem Array von ganzen Zahlen effektiv
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));
}
}
Bitte jemand mir helfen, dies zu klären. Dank
int j = arr.length - 1; für (int i = 0; i
Dilee
'i ++' innerhalb der Schleife ist falsch, da 'i ++' würde sowieso am Ende von 'for' Schleife passieren, was schließlich zu Doppelinkrement von' i' führt. Verwenden Sie stattdessen eine 'while (i
Ich habe es versucht und es endete mit nicht genügend Speicherfehler. int j = arr.Länge - 1; int i = 0; while (i
Dilee