LeetCode(Python)—— 两数之和(简单)

2023-11-10

两数之和

概述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值  target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

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

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

输入:nums = [3,3], target = 6
输出:[0,1]

方法一:暴力枚举

最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。当我们使用遍历整个数组的方式寻找 target - x 时,需要注意到每一个位于 x 之前的元素都已经和 x 匹配过,因此不需要再进行匹配。而每一个元素不能被使用两次,所以我们只需要在 x 后面的元素中寻找 target - x

# 暴力枚举
class Solution:
    def twoSum(self, nums, target):
        n = len(nums)  # 列表总长度
        for i in range(n):
            for j in range(i+1, n):  # i以前值省略
                if nums[i] + nums[j] == target:
                    return [i, j]

方法二:哈希表

创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。

# 哈希表
class Solution:
    def twoSum(self, nums, target):
        hashmap = dict()  #建立哈希表
        for i,num in enumerate(nums):
            x = target - num
            if x in hashmap:
                return [hashmap[x],i]
            hashmap[num] = i
        return []

总结

你用你的哈希表,我两个for走遍天下!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode(Python)—— 两数之和(简单) 的相关文章

随机推荐

  • 滤波方法总结

    经典滤波方法主要有低通 高通 带通 带阻滤波 相关滤波 限幅滤波 中值滤波 基于拉依达准则的奇异数据滤波 基于中值数绝对偏差的决策滤波 算术平均滤波 滑动平均滤波 加权滑动平均滤波 一价滞后滤波 加权递推平均滤波 消抖滤波 限幅消抖滤波 维
  • soamanager 弹不出浏览器

    https www cnblogs com WACBZWY p 11970420 html 输入SOAMANGER左下角提示正在启动 一闪而过 并没有弹出浏览器 se24 将 CL GUI HTML VIEWER类中 方法 DETACH U
  • 00 SD卡知识简介

    具体可见如下文章 源地址 SD卡介绍
  • ZooKeeper之(六)应用实例

    6 1 Java API 客户端要连接 Zookeeper服务器可以通过创建 org apache zookeeper ZooKeeper 的一个实例对象 然后调用这个类提供的接口来和服务器交互 ZooKeeper 主要是用来维护和监控一个
  • pybind11传输文件

    python open之后的bytes 加长度 c 接收string 需要时pBuffer c str 和长度就ok了 c 别用char 在linux下有时会报错 代码 c using namespace std int add perso
  • 毕业设计(基于TensorFlow的深度学习与研究)之总结概述篇

    阅读本文大概需要 10 分钟 前言 今天是2020 07 30 距离我答辩已经过去1个月时间 距离我完成论文初稿并在paperpass上查重已经过去4个月时间 经过这么长时间的思考 沉淀 我将在本文中主要涉及3个方面的内容 希望能够给即将进
  • Pandas数据的导入与导出

    Excel格式数据导入 文件格式 读取方法 Excel文件 read excel CSV文件 read csv txt文件 read table Json文件 read json MySQL文件 read sql table 对于上述这些方
  • 圆形电子围栏检测嵌入式C实现

    js代码 fileoverview GeoUtils类提供若干几何算法 用来帮助用户判断点与矩形 圆形 多边形线 多边形面的关系 并提供计算折线长度和多边形的面积的公式 主入口类是 a href symbols BMapLib GeoUti
  • linux修改时区 修正时间

    1 tzselect 2 选择Asia 3 选择china 4 选择beijing 5 最后执行TZ Asia Shanghai export TZ 6 重启
  • html弹窗口并获取返回值,Js 弹出框口并返回值的两种常用方法

    1 window showModalDialog url args dialogattrs 参数说明 url 弹出页面地址 agrs 主窗口传给对话框的参数 可以是任意类型 数组也可以 dialogattrs 弹出窗口的样式参数 模式对话框
  • 【面试精讲】Java:Exception 和 Error 有什么区别?

    前言 众所周知 没有 BUG 的程序只会出现在程序员的梦里 异常情况如影随形地纠缠着我们 只有正确处理好意外情况 才能保证程序的可靠性 Java 语言在设计之初就提供了相对完善的异常处理机制 这也是 Java 得以大行其道的原因之一 因为这
  • NVIDIA GPU 算力表

    来自nvidia官方 https developer nvidia com cuda gpus
  • 线程同步

    线程同步 作者 buaawhl 我们可以在计算机上运行各种计算机软件程序 每一个运行的程序可能包括多个独立运行的线程 Thread 线程 Thread 是一份独立运行的程序 有自己专用的运行栈 线程有可能和其他线程共享一些资源 比如 内存
  • Selenium系列教程 - 文件上传

    主要内容 一 通过send keys方法 该方法只适用于input标签 二 通过AutoIt来处理上传文件 适用所有 三 其他方法 四 多文件上传 在Web UI自动化测试中可能会遇到文件上传的场景 针对该场景我们要区分上传按钮的种类 大体
  • 第四周作业

    实验作业 1 完成课本每一个编程题 要求先画出流程算法图或N S图 然后编程实现 有可能的话使用两种以上方法 2 编程求 百钱百鸡 问题 鸡翁一值钱五 鸡母 一值钱三 鸡雏三值钱一 百钱买百鸡 问鸡翁 鸡母 鸡雏各几何 3 编程输入一个整数
  • centos7下boot空间不足解决办法

    root localhost admin rpm qa grep kernel 看下有哪些 然后用yum remove kernel devel 3 10 0 327 el7 x86 64 删除
  • 创建Numpy数组(zeros()、ones()、empty()、arange())

    创建Numpy数组 zeros 创建出来的数组里边的元素都是0 例如 data01 np zeros 3 4 print data01 ones 创建出来的数组里边的元素都是1 例如 data02 np ones 3 4 print dat
  • 前端通过spark-md5.js计算本地文件md5

    背景 说到本人第一次使用spark md5 js还是差不多一年以前的时候了 当时后台老大说要搞一个文件分片上传的功能 我当时就心想 what 啥是文件分片上传 完全没听过好吗 至于我当时内心那个慌就不多描述了 总之文件分片上传需要一个识别文
  • Leetcode--Java--377. 组合总和 Ⅳ

    题目描述 给你一个由 不同 整数组成的数组 nums 和一个目标整数 target 请你从 nums 中找出并返回总和为 target 的元素组合的个数 题目数据保证答案符合 32 位整数范围 样例描述 示例 1 输入 nums 1 2 3
  • LeetCode(Python)—— 两数之和(简单)

    两数之和 概述 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出和为目标值 target 的那两个整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出现 你可