给定一个整数数组 nums 和一个目标值 target ,在该数组中找出和为目标值的两个整数,并返回他们的数组下标。

JavaScript 实现

应用了 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]

Java 实现

应用 HashMap 实现,代码如下:

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]    }}