题目解读
给定一个数组和一个目标整数,找出数组中想加等于目标整数的两个数并返回(有的题是下标),并且数组中一个数只能使用一次。
解题思路
遍历数组,每次判断目标数与取出术之差是否在已取出的数中,在就返回,不在就加入已取出的数中,java中可以用HashMap来保存取出的数。
Solution
class Solution {
public int[] twoSum(int[] nums, int target) {
if(nums.length<=1)
{
return new int [] {-1,-1};
}
int[] Res=new int [] {-1,-1};
HashMap<Integer,Integer> Array=new HashMap<>();
for(int i=0;i<nums.length;i++)
{
if(Array.containsKey(target-nums[i]))
{
Res[0]=(int) Array.get(target-nums[i]);
Res[1]=i;
break;
}
Array.put(nums[i], i);
}
return Res;
}
}