题目: 分析: 代码一(暴力解题法,时间复杂度O(n^2)): public int[] twoSum(int[] numbers, int target) { int i = 0; while (i<=numbers.length-2){ int j = 0; while (i+j+1<=numbers.length-1){ if (numbers[i]+numbers[i+j+1]==target){ return new int[]{i+1, i+j+2}; } j++; } i++; } return null; } 代码二(双指针): public int[] twoSum1(int[] numbers, int target){ if (numbers.length == 0) return null; int i = 0; int j = numbers.length-1; while (i<j){ int sum = numbers[i]+numbers[j]; if (sum>target){ j--; }else if (sum<target){ i++; }else { return new int[]{i+1, j+1}; } } return null; }