题解 | 两数之和
两数之和
https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
public int[] twoSum (int[] numbers, int target) {
int[] result = new int[]{-1, -1};
int[] tmp = Arrays.copyOf(numbers, numbers.length);
Arrays.sort(tmp);
int first = -11;
int second = -11;
for (int i = 0, j = 1; i < tmp.length && j < tmp.length;) {
if (tmp[i] + tmp[j] == target) {
first = tmp[i];
second = tmp[j];
break;
}
if (j == tmp.length -1 || tmp[i] + tmp[j] < target && tmp[i] + tmp[j + 1] > target) {
i ++;
j = i + 1;
} else {
j ++;
}
}
System.out.println(first + ":" + second);
if (first == -11 || second == -11) {
return result;
}
for (int i = 0; i < numbers.length; i++) {
if (result[0] == -1 && first == numbers[i]) {
result[0] = i + 1;
continue;
}
if (result[1] == -1 && second == numbers[i]) {
result[1] = i + 1;
}
}
Arrays.sort(result);
return result;
}
}
深圳虾皮信息科技有限公司公司福利 819人发布
