問題描述:
????給定一個整數(shù)數(shù)組 nums 和一個目標值 target炸宵,請你在該數(shù)組中找出和為目標值的那 兩個 整數(shù)函卒,并返回他們的數(shù)組下標戏溺。
????你可以假設每種輸入只會對應一個答案。但是拦止,你不能重復利用這個數(shù)組中同樣的元素县遣。
示例:
????給定 nums = [2, 7, 11, 15], target = 9
????因為 nums[0] + nums[1] = 2 + 7 = 9
????所以返回 [0, 1]????
思路:
????使用一個HashMap來記錄數(shù)組中元素的值和對應的下標。遍歷數(shù)組的過程中创泄,判斷map中是否存在(target-數(shù)組元素值)的key艺玲,如果存在,則獲得最終結果鞠抑。
java語言實現(xiàn):
public int[] twoSum(int[] nums, int target) {
????int [] result = new int[]{-1,-1};
????HashMap map = new HashMap<>();
????for(int i=0; i
????????if(map.containsKey(target - nums[i])){
????????????result[0] = map.get(target - nums[i]);
????????????result[1] = i;
????????????return result;
????}
????map.put(nums[i],i);
}
return result;
}