Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
You may assume that each input would have exactly one solution.
Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
思路:这题非常简单,由于本人懒惰也懒得找时间复杂度小的算法,这循环了两次数组nums,就得出了答案。(已经accepted)
注意:输出的index1和index2不能是同一个数,如nums[]={3,2,4}, 输出的应该是2,4,而不是3,3
下面附本人代码.
public class Solution {
public int[] twoSum(int[] nums, int target) {
if (nums == null || nums.length < 2)
return null;
int[] a = new int[2];
for (int i = 0; i <= nums.length - 1; i++) {
for (int j = 0; j <= nums.length - 1; j++) {
if ((nums[i] + nums[j]) == target && i != j) {
a[0] = i + 1;
a[1] = j + 1;
return a;
}
}
}
return a;
}
}