給定一個整數數組 nums
和一個目標值 target
,在該數組中找出和爲目標值的兩個整數,並返回他們的數組下標。java
使用了 ES6 中的 Map
對象,代碼以下:數組
const nums = [2, 7, 11, 15], target = 9; function sumofTwoNumber(nums, target) { let map = new Map(); for(let i=0; i<nums.length; i++) { let k = target - nums[i]; if(map.has(k)) { return [map.get(k), i] } map.set(nums[i], i) } return [] } const res = sumofTwoNumber(nums, target); console.log(res); // [0, 1]
使用 HashMap 實現,代碼以下:code
package com.company; import java.util.ArrayList; import java.util.List; import java.util.HashMap; public class SumOfTwoNumberUsingHashMap { public static List<Integer> sumOfTwoNumber(List<Integer> nums, Integer target) { HashMap<Integer, Integer> map = new HashMap<>(); for(int i=0; i<nums.size(); i++) { int k = target - nums.get(i); if(map.containsKey(k)) { List<Integer> list = new ArrayList<>(); list.add(map.get(k)); list.add(i); return list; } map.put(nums.get(i), i); } List<Integer> list = new ArrayList<>(); return list; } public static void main(String[] args) { List<Integer> nums = new ArrayList<>(); nums.add(2); nums.add(7); nums.add(11); nums.add(15); List<Integer> res = sumOfTwoNumber(nums, 9); System.out.println(res); // [0, 1] } }