美文网首页
1. 两数之和了解算法复杂度

1. 两数之和了解算法复杂度

作者: Poppy11 | 来源:发表于2024-05-08 11:09 被阅读0次

1.这是leetcode第一题, https://leetcode.cn/problems/two-sum/ , 两数之和。

image.png

首先最简单暴力的方式,就是双重for循环,如果两者相加等于target,那么我们就return出去。

//数组长度是n,双重循环,  时间复杂度On², 空间复杂度O(1)
var twoSum = function (nums, target) {
    for (let i = 0; i < nums.length; i++) {
        for (let j = 0; j < nums.length; j++) {
            if (i !== j && nums[i] + nums[j] === target) {
                return [i, j]
            }
        }
    }
};

然后再来讲讲更好的一个解决思路,其实我们可以类比生活中的例子,匹配的原则, 例如我是2,我知道我们的结局是9,那么我就只需要找到7,其它的我不用关心。 那么我们就需要一个表来记录,每一次有数字进来,如果在这个表里面有他们当前可以匹配的数字,那么就配对成功了,如果没有匹配的我就记录他需要匹配的数字是多少。

//数组长度n , 时间复杂度 On, 空间复杂度On
var twoSum = function (nums, target) {
    let obj = {};
    for (let i = 0; i < nums.length; i++) {
        let num = nums[i];
        let n = target - num;

        if (num in obj) {
            return [i, obj[num]];
        } else {
            obj[n] = i
        }
    }
};

相关文章

  • 算法时间复杂度学习

    算法时间复杂度学习 1. 算法 算法:是用于解决特定问题的一系列的执行步骤。 举例: 简单的求两数之和,以及求n个...

  • LeetCode算法-1.两数之和

    java代码如下: 执行用时 : 54 ms, 在Two Sum的Java提交中击败了33.56% 的用户内存消耗...

  • 「算法」两数之和 & 两数之和 II

    00001 两数之和 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只...

  • leetcode算法类型(Python):1. 两数之和,难度:

    leetcode算法类型:1. 两数之和,难度:简单 解答: 算法类型这个部分,由于在深入学习Python,...

  • 画解算法:1. 两数之和

    题目链接 https://leetcode-cn.com/problems/two-sum/ 题目描述 给定一个整...

  • 算法:两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重...

  • 算法-两数之和

    这是一道LeetCode上的问题,详见两数之和,难度标注是简单,但是我思考到了一些比较复杂的情况,之后我会修改题目...

  • 算法--两数之和

    问题描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样...

  • 算法「两数之和」

    题目:给出数组nums和目标值target,找出和为目标值的两个数在数组中 想法:定义数组和目标值,遍历数组x使得...

  • 算法-两数之和

    算法对于程序的重要性不言而喻,所以从今天开始要一点一滴地积累自己的算法知识,同时也要充分地利用使用的程序语言所提供...

网友评论

      本文标题:1. 两数之和了解算法复杂度

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