题目:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素
思路:
解法:
class Solution{
public int[] twoSum(int[] nums, int target) {
for(int i = 0 ; i < nums.length ; i++){
int temp = target - nums[i] ;
for(int j = i ; j <nums.length ; j++){
if(nums[j] == temp){
return new int[]{i,j};
}
}
}
return null ;
}
}
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> hashMap = new HashMap();
for(int i = 0 ; i < nums.length ; i++){
int temp = target - nums[i] ;
if(hashMap.containsKey(temp) && hashMap.get(temp) != i){
if(i > hashMap.get(temp))
return new int[]{hashMap.get(temp),i};
else
return new int[]{i,hashMap.get(temp)} ;
}
hashMap.put(nums[i],i);
}
return null ;
}
}
力扣提交: