给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路:遍历给定数组,判断数组中两个数之和是否等于给定值
如果找到则返回两个数的下标,如果找不到则返回null
/**
* 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
*/
class Solution {
public int[] twoSum(int[] nums, int target) {
for(int i=0; i<nums.length; i++){
for(int j=i+1; j<nums.length; j++){
if((nums[i]+nums[j] == target) && (i!=j)){ //判断两个数的相加是否等于给定值,并且两个数的下标不同
return new int[]{i,j}; //因为只有一种答案,所以找到后就直接返回
}
}
}
return null;
}
}
public class TwoSum{
public static void main(String[] args){
int target = 9;
int[] data = new int[]{2,7,11,15};
Solution solution = new Solution();
int[] result = solution.twoSum(data, target);
for(int temp:result){
System.out.print(temp+" ");
}
}
}
运行结果: