两数之和

简介: 两数之和

LeetCode 日记(#1 两数之和)


python3解答


题目内容:


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


你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。


你可以按任意顺序返回答案。


示例 1:

输入:nums = [2,7,11,15], target = 9

输出:[0,1]

解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。


示例 2:

输入:nums = [3,2,4], target = 6

输出:[1,2]


示例 3:

输入:nums = [3,3], target = 6

输出:[0,1]


解法一:暴力搜索


最常规的想法,暴力搜索:


1.对每一个下标为i的数字num1,查找列表中 (target - num1)是否存在

2.若存在,则返回其下标j;

3.若不存在,则迭代 i = i + 1 ,开始下一轮搜索。


不够,我们考虑到,如果我们在查找的过程中,能够只查找该数字之前或只查找该数字之后的数字,可以在不错失答案的情况下减少我们每次搜索的工作量。


具体代码如下:


只查找该数字之前:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        listlen = len(nums)
        anw2 = -1
        for anw1 in range(1,listlen):
            temp = nums[:anw1]
            if (target - nums[anw1]) in temp:
                anw2 = temp.index(target - nums[anw1])
                break
        if anw2 != -1:
            return [anw2,anw1]


只查找该数字之后:

class Solution:
  def twoSum(self, nums: List[int], target: int) -> List[int]:
    listlen = len(nums)
    anw2 = -1
    for anw1 in range(0,listlen-1):
      temp = nums[anw1 + 1:]
      if (target - nums[anw1]) in temp:
        anw2 = temp.index(target - nums[anw1]) + anw1 + 1
        break
    if anw2 != -1:
      return [anw1,anw2]


最好成绩:


执行用时: 28 ms


内存消耗: 15 MB


解法二:利用字典模拟hash表


hash查找在搜索方面有着巨大的优势,我们可以先利用字典构建一张hash表,再通过hash表查找:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}
        for numid,num in enumerate(nums):
            hashmap[num] = numid
        for i,num in enumerate(nums):
            j = hashmap.get(target - num)
            if j is not None and i!=j:
                return[i,j]


最好成绩:


执行用时: 40 ms


内存消耗: 15 MB


也可以一边查找,一边建表:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}
        for numid,num in enumerate(nums):
            need = target - num
            if need in hashmap:
                return[hashmap[need],numid]
            else:
                hashmap[num] = numid


最好成绩:


执行用时: 36 ms


内存消耗: 14.9 MB

目录
相关文章
|
3天前
|
人工智能 JSON 安全
|
3天前
|
云安全 人工智能 安全
|
3天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
723 0
|
3天前
|
人工智能 自然语言处理 数据挖掘
最新版通义千问(Qwen3.8-Max-Preview)功能介绍
2026年,通义千问正式推出全新旗舰级大模型 **Qwen3.8-Max-Preview 预览版**,作为首款突破万亿参数规格的新一代基座模型,该模型总参数量达到**2.4万亿**,采用全新迭代的MoE混合专家架构,综合推理性能、长文本处理、多模态理解、复杂任务规划能力全面超越前代Qwen3.7-Max版本,整体实力跻身全球第一梯队,可对标海外顶级旗舰模型,是当前面向复杂工程开发、多智能体协同、超长文档解析、专业办公自动化场景的最优国产基座模型。
742 0
|
5天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
674 27
|
4天前
|
人工智能 测试技术 语音技术
Qwen-Audio-3.0-TTS 正式发布!AI 语音从 “能说话” 升级到 “会带情绪表达”
阿里云发布Qwen-Audio-3.0-TTS语音合成大模型,支持细粒度标签控制(如[gasp][angry])、freestyle自由风格、16种语言及20种方言,声学鲁棒性强。含Flash(首包延时300ms)和Plus(全球榜单冠军)双版本,已在百炼平台开放调用。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
600 1
|
5天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
Qwen3.8-Max-Preview是通义千问Qwen3系列旗舰MoE大模型,参数达2.4万亿,综合推理能力居行业第一梯队。支持思考/快速双模式,擅长大模型五大高难场景。现于阿里云百炼Token Plan、Qoder及QoderWork上线体验,个人版低至39元/月。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
536 1
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
|
11天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
953 12

热门文章

最新文章