资讯专栏INFORMATION COLUMN

Leetcode 1:两数之和

Taste / 1423人阅读

摘要:给定一个整数数组和一个目标值,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。示例给定因为所以返回方法,暴力解法。函数可以将一个数组转化为一个从开始,值为数组对应元素的字典。

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

方法1,暴力解法。

直接每一个元素都与自己之前的元素相加看是否有目标值,有就输出。

代码如下:

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        n = len(nums)
        for i in range(n):
            for j in range(i):
                if nums[i] + nums[j] == target:
                    target_num = [i,j]
                    return target_num
        return None

​

时间消耗和空间消耗如下:

执行用时: 4500 ms, 在Two Sum的Python3提交中击败了32.72% 的用户

内存消耗: 7.3 MB, 在Two Sum的Python3提交中击败了85.58% 的用户

方法2,使用enumerate函数

查看评论使用enumerate 函数效率更高。

enumerate函数可以将一个数组转化为一个key从开始,值为数组对应元素的字典。

代码如下:

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        if not nums:
            return None
            d = dict()
        for i,item in enumerate(nums):
            tmp = target – item
            if tmp in d:
                return [i, d[tmp]]
                d[item] = i
        return None

时间消耗和空间消耗如下:

执行用时: 44 ms, 在Two Sum的Python3提交中击败了99.77% 的用户

内存消耗: 7.9 MB, 在Two Sum的Python3提交中击败了46.97% 的用户

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45061.html

相关文章

  • LeetCode 167:两数之和 II - 输入有序数组 Two Sum II - Input a

    摘要:公众号爱写给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值和,其中必须小于。示例输入输出解释与之和等于目标数。 公众号: 爱写bug(ID:icodebugs) 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。...

    张春雷 评论0 收藏0
  • LeetCode 167:两数之和 II - 输入有序数组 Two Sum II - Input a

    摘要:公众号爱写给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值和,其中必须小于。示例输入输出解释与之和等于目标数。 公众号: 爱写bug(ID:icodebugs) 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。...

    Me_Kun 评论0 收藏0
  • LeetCode.1 两数之和(Two Sum)(JS)

    摘要:开坑,以后每周刷一两道一题目两数之和给定一个整数数组和一个目标值,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。但是,你不能重复利用这个数组中同样的元素。 开坑,以后每周刷一两道LeetCode 一、题目 两数之和: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应...

    Gu_Yan 评论0 收藏0
  • 【前端来刷LeetCode两数之和两数相加

    摘要:给定表,存在函数,对任意给定的关键字值,代入函数后若能得到包含该关键字的记录在表中的地址,则称表为哈希表,函数为哈希函数。而中的对象就是基于哈希表结构,所以我们构造一个对象即可,是当前遍历到的值,是其与目标值的差。 大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式、调兼容就够掉头发的了,哪还有多余的头发再去折腾。 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,...

    BLUE 评论0 收藏0
  • LeetCode1.两数之和JavaScript

    摘要:两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。实例给定因为所以返回答案参考执行 LeetCode1.两数之和JavaScript 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。实例: 给定 nums = [2, 7, 11, 1...

    Scliang 评论0 收藏0
  • LeetCode】数组初级算法-两数之和

    摘要:题目描述两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例给定因为所以返回思路双重循环,遍历数组实现 题目描述 两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例: 给定 nums = [2, 7, 11, 15],...

    chaos_G 评论0 收藏0

发表评论

0条评论

Taste

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<