class Solution {
public int[] twoSum(int[] nums, int target) {
int temp;
int arr = new int[2];
for(int i = 0; i < nums.length;i++){
for(int j = i+1;j < nums.length-i-1;j++){
temp = nums[i]+nums[j];
if(target == temp){
// System.out.println("["+i+","+j+"]");
arr[i] = i;
arr[j] = j;
}
}
}
return arr;
}
}
上面就是我的代码,执行成功,我以为自己解决了,于是提交了,结果系统给我的多余一种结果的数组,系统报错,我的arr数组超出容量。
当我把数组的容量改为4,系统出现一个巨长的测试数组
[230,863,916,585,981,404,316,785,88,12,70,435,384,778,887,755,740,337,86,92,325,422,815,650,920,125,277,336,221,847,168,23,677,61,400,136,874,363,394,199,863,997,794,587,124,321,212,957,764,173,314,422,927,783,930,282,306,506,44,926,691,568,68,730,933,737,531,180,414,751,28,546,60,371,493,370,527,387,43,541,13,457,328,227,652,365,430,803,59,858,538,427,583,368,375,173,809,896,370,789]
??这是想弄死我的arr数组吗???
偷偷的看了一下官方的代码
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[j] == target - nums[i]) {
return new int[] { i, j };
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
我的代码很弱!