相关推荐recommended
算法:两数之和
作者:mmseoamin日期:2024-02-22

算法:两数之和

方法一:暴力法

function twoSum(nums, target) {
    for (let i = 0; i < nums.length; i++) {
        for (let j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] === target) {
                return [i, j];
            }
        }
    }
    return null;
}

方法二:哈希表

function twoSum(nums, target) {
    const map = new Map();
    for (let i = 0; i < nums.length; i++) {
        const complement = target - nums[i];
        if (map.has(complement)) {
            return [map.get(complement), i];
        }
        map.set(nums[i], i);
    }
    return null;
}

方法一:使用暴力法,通过两层循环遍历数组来查找符合条件的两个数。

方法二:使用哈希表,通过一次遍历数组,将每个数的值和索引存储在哈希表中,同时查找是否存在符合条件的数。

暴力法的时间复杂度为O(n^2),空间复杂度为O(1);而哈希表的时间复杂度为O(n),空间复杂度为O(n)。