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
【解题思路】:
目前只能想到蛮力算法,逐个遍历,一旦找到两个数的和为9,立即将这两个数的索引放入数组中,并返回。先分享吧,以后再做改进。
【代码实现】:
public class Solution {
public int[] twoSum(int[] nums, int target) {
int[] indexs = new int[2];
int len = nums.length;
for(int i=0; i
for(int j=i+1; j < len; j++) { //其中一个数的index为1,另一个在i+1到len-1之间取
if(nums[i] + nums[j] == target) { //找到和为target立即跳出
indexs[0] = i + 1;
indexs[1] = j + 1;
return indexs;
}
}
}
return null;
}
}
最后,欢迎各位批评指正!