1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| public class Solution { public int[] twoSum(int[] numbers, int target) { int i = 0; int j = numbers.length - 1;
while (i < j) { if (numbers[i] + numbers[j] < target) { i++; } else if (numbers[i] + numbers[j] > target) { j--; } else { return new int[] { i + 1, j + 1 }; } }
return new int[] { -1, -1 }; }
public static class ArrayUtils { public static void printArray(int[] array) { System.out.println(java.util.Arrays.toString(array)); }
public static void printArray(int[] array, int len) { System.out.println(java.util.Arrays.toString(java.util.Arrays.copyOf(array, len))); }
public static void printArrays(int[][] arrays) { System.out.println(java.util.Arrays.deepToString(arrays)); }
public static void printArray(Integer[] array) { System.out.println(java.util.Arrays.toString(array)); }
public static void printArray(Integer[] array, int len) { System.out.println(java.util.Arrays.toString(java.util.Arrays.copyOf(array, len))); }
public static void printArrays(Integer[][] arrays) { System.out.println(java.util.Arrays.deepToString(arrays)); }
public static void printArray(String[] array) { System.out.println(java.util.Arrays.toString(array)); }
public static void printArray(String[] array, int len) { System.out.println(java.util.Arrays.toString(java.util.Arrays.copyOf(array, len))); }
public static void printArrays(String[][] arrays) { System.out.println(java.util.Arrays.deepToString(arrays)); } }
public static void main(String[] args) { testCase1(); testCase2(); testCase3(); }
public static void testCase1() { int[] numbers = { 2, 7, 11, 15 }; int target = 9;
int[] result = new Solution().twoSum(numbers, target); ArrayUtils.printArray(result); }
public static void testCase2() { int[] numbers = { 2, 3, 4 }; int target = 6;
int[] result = new Solution().twoSum(numbers, target); ArrayUtils.printArray(result); }
public static void testCase3() { int[] numbers = { -1, 0 }; int target = -1;
int[] result = new Solution().twoSum(numbers, target); ArrayUtils.printArray(result); } }
|