给定一个整数数组 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] } }