描述
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。
你需要实现的函数twoSum
需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。
你可以假设只有一组答案。
样例
给出 numbers = [2, 7, 11, 15]
, target = 9
, 返回 [0, 1]
.
挑战
Either of the following solutions are acceptable:
- O(n) Space, O(nlogn) Time
- O(n) Space, O(n) Time
代码
/** * 56 https://www.lintcode.com/problem/two-sum/description */ @Test public void tesTwoSum() { int[] numbers = { 2, 7, 11, 15 }; int target = 9; int[] retArray = new int[2]; for (int i = 0; i < numbers.length; i++) { int intA = numbers[i]; int intB = 0; for (int j = 1 + i; j < numbers.length; j++) { intB = numbers[j]; // SUM CHECK if (target == intA + intB && i < j) { retArray[0] = i; retArray[1] = j; break; } } } System.out.println(Arrays.toString(retArray)); }
Comments