【PUNISHING】戰雙同人 編年史 冬眠技術與冬眠人
阿新 • • 發佈:2022-04-05
給定一個整數陣列 nums 和一個整數目標值 target,請你在該陣列中找出 和為目標值 target 的那 兩個 整數,並返回它們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素在答案裡不能重複出現。
你可以按任意順序返回答案。
來源:力扣(LeetCode) 連結:https://leetcode-cn.com/problems/two-sum 著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
解題思路:
將陣列中的值和下標分別儲存到hashmap中的key與value,若陣列中存在 target-nums[i],則nums[i]與 target-nums[i] 即為所求兩數,nums[i]的下標為i; target-nums[i]的下標用map.get()獲取;
containsKey() 方法檢查 hashMap 中是否存在指定的 key 對應的對映關係。
containsKey() 方法的語法為:
hashmap.containsKey(Object key)
注:hashmap 是 HashMap 類的一個物件。
引數說明:
-
key - 鍵
返回值
如果 hashMap 中存在指定的 key 對應的對映關係返回 true,否則返回 false。
Java程式碼:
public int[] twoSum(int[] nums , int target){
HashMap<Integer , Integer> map = new HashMap<>();
for(int i = 0;i<nums.length;i++){
if(map.containsKey(target-nums[i])){
return new int [] {map.get(target-nums[i]),i};
}
map.put(nums[i],i);
}
return new int[0];
}