一、题目
二、代码
class Solution
{
public int[] twoSum(int[] nums, int target)
{
int i;
int[] return_int = new int[2];
int length = nums.length;
Map<Integer,Integer> maps = new HashMap<>();
System.out.println("length " +length);
for(i=0 ; i<length;i++)
{
if(maps.containsKey(target-nums[i]))
{
return_int[0] = i;
return_int[1] =maps.get(target-nums[i]);
return return_int;
}
else
{
//要取的值放在后面,有key->value 没有value->key
maps.put(nums[i],i);
}
}
return return_int;
}
}
三、运行结果
四、附录
二刷
class Solution
{
public int[] twoSum(int[] nums, int target)
{
int[] re = new int[2];
Map<Integer,Integer> res_map = new HashMap<>();
int i;
int length = nums.length;
for(i = 0;i<length;i++)
{
res_map.put(nums[i],i);
}
for(i=0;i<length;i++)
{
if(res_map.containsKey(target-nums[i])&&i!=res_map.get(target-nums[i]))
{
re[0] = i;
re[1] = res_map.get(target-nums[i]);
}
}
return re;
}
}