算法題:兩數之和——JavaScript及Java實現

給定一個整數數組 nums 和一個目標值 target ,在該數組中找出和爲目標值的兩個整數,並返回他們的數組下標。java

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 實現,代碼以下: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]
    }
}
相關文章
相關標籤/搜索