如何打印出答案的索引?
How to print out the indices of the answer?
我正在寻找两个值之和等于目标数的索引。该程序的预期输出是 {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 方法。
字符串生成器:
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);
我正在寻找两个值之和等于目标数的索引。该程序的预期输出是 {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 方法。
字符串生成器:
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);