美文网首页
算法题之「两数之和」

算法题之「两数之和」

作者: 此行欲上天 | 来源:发表于2023-08-27 15:18 被阅读0次

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums=[2,7,11,15],target=9 因为 nums[0]+nums[1]=2+7=9 所以返 回 [0, 1]

我的答案:

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

参考答案:

function anwser(arr, target) {
    let map = {};
    for (let i = 0; i < arr.length; i++) {
        map[arr[i]] = i;
    }
    for (let i = 0; i < arr.length; i++) {
        var d = target - arr[i];
        if (map[d]) {
            return [i, map[d]];
        }
    }
    return new Error('404 not found');
}

总结:
1.参考答案减少了时间复杂度
2.参考答案在查找不到对应下标值时有返回对应提示

相关文章

网友评论

      本文标题:算法题之「两数之和」

      本文链接:https://www.haomeiwen.com/subject/fbdwmdtx.html