1. 程式人生 > 遊戲資訊 >【PUNISHING】戰雙同人 編年史 冬眠技術與冬眠人

【PUNISHING】戰雙同人 編年史 冬眠技術與冬眠人

給定一個整數陣列 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];
}