LeetCode 1 in Python. Two Sum (两数之和)

两数之和算法思想很简单,即找到nums[i]和nums[j]==target-(nums[i])返回[I, j ]即可。问题在于,简单的两层遍历循环时间复杂度为O(n^{2}),而通过构建一个hash表就可将时间复杂度降至O(n)。本文给出两种方法的代码实现。

示例:

图1 两数之和输入输出示例图 

方法一:枚举(时间复杂度为为O(n^{2}))

代码 :

class Solution:
    def twoSum(self, nums, target):
        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return []

方法二:哈希表(时间复杂度为O(n))

代码:

class Solution:
    def twoSum(self, nums, target):
        hashmap = {}
        for i, num in enumerate(nums):
            if target - nums[i] in hashmap:
                return [i, hashmap[target - nums[i]]]
            hashmap[num] = i
        return []

相关推荐

  1. LeetCode 1. 之和

    2024-04-14 15:50:02       82 阅读
  2. leetcode 1之和

    2024-04-14 15:50:02       48 阅读
  3. LeetCode1之和

    2024-04-14 15:50:02       38 阅读
  4. Leetcode 1.之和

    2024-04-14 15:50:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 15:50:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 15:50:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 15:50:02       82 阅读
  4. Python语言-面向对象

    2024-04-14 15:50:02       91 阅读

热门阅读

  1. 算法与数据结构 栈队列 (C++)

    2024-04-14 15:50:02       36 阅读
  2. python制造虚拟姓名电话保存到mysql数据库

    2024-04-14 15:50:02       38 阅读
  3. 一体化泵站的生产制造流程怎样

    2024-04-14 15:50:02       40 阅读
  4. 3.15 Python逻辑运算符

    2024-04-14 15:50:02       35 阅读
  5. 基于单片机的天然气报警系统设计

    2024-04-14 15:50:02       37 阅读
  6. 【算法】Cordic算法的原理及matlab/verilog应用

    2024-04-14 15:50:02       33 阅读
  7. 题目:输入3个数a,b,c,按大小顺序输出。

    2024-04-14 15:50:02       33 阅读
  8. 谷歌翻译接口-国内使用在线翻译API

    2024-04-14 15:50:02       31 阅读
  9. 云服务器&宝塔&ssh:tabby 部署SpringBoot项目

    2024-04-14 15:50:02       188 阅读