1. 程式人生 > 其它 >演算法(1)—— 兩數之和

演算法(1)—— 兩數之和

題目描述:

給定一個整數陣列 nums和一個整數目標值 target,請你在該陣列中找出 和為目標值 target 的那兩個整數,並返回它們的陣列下標。

你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素在答案裡不能重複出現。

你可以按任意順序返回答案。

題解思路

 利用 hashmap 進行計算,map 的 key 存具體值,value 存放序號,遍歷陣列,如果 key 存在(目標值 - 當前值),返回 value 和當前序號,反之存入

程式碼

 1     public int[] twoSum(int[] nums, int target) {
 2         HashMap<Integer, Integer> map = new HashMap<>();
3 for (int i = 0; i < nums.length; i ++) { 4 if (map.containsKey(target - nums[i])) { 5 return new int[] {map.get(target - nums[i]), i}; 6 } 7 map.put(nums[i], i); 8 } 9 return new int[0]; 10 }