我正在寻找两个值之和的索引等于目标数。该程序的预期输出为{0,1},但是我从以下代码中获得了[I @ 1b6d3586]。
我知道方法调用可能有问题,但是我不知道如何解决它。
public static void main(String[] args) {
int[] a = {2, 7, 9, 11};
System.out.println(twoSum(a, 9));
}
public static int[] twoSum(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] + arr[j] == target) {
return new int[]{i, j};
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
您需要将结果转换为字符串。 int[]
无法直接打印
System.out.println(Arrays.toString(twoSum(a, 9)));
数组是一个单独的对象,该对象的纯文本输出与其内容无关。您可以改用StringBuilder或Arrays.toString方法。
StringBuilder:
int[] ints = new int[] {2, 3};
char separator = ' ';
StringBuilder builder = new StringBuilder();
for (int anInt : ints) {
builder.append(anInt).append(separator);
}
Arrays.toString:
int[] ints = new int[] {2, 3};
String arrayAsString = Arrays.toString(ints);