私はプログラミングがとても新しいです。与えられた整数の配列を効果的に使って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; (arr [i] + arr [j] == k){ sb.append( "{" + arr [i] + "、" + ij + arr [j] + "}" + "、"); 結果++; } else if((arr [i] + arr [j])
Dilee
ループ内の 'i ++'が間違っています。なぜなら、 'for'ループの最後に' i ++ 'が起こってしまい、結果的に' i'が2倍になるからです。代わりに 'while(i
私はそれを試して、それはメモリ不足のエラーで終わった。 int j = arr.length - 1; int i = 0; (arr [i] + arr [j] == k){ sb.append( "{" + arr [i] + "、" + arr [j] + "}) "+"、 "); 結果++; } else if((arr [i] + arr [j])
Dilee