python 两数之和

【Python】两数之和 给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数 阅读详情

两数之和 python实现

解法1

不用说耗时长,复杂度O(n2)O(n^2)O(n2)

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+1,n):
                if nums[j] == target - nums[i]:
                    return [i,j]

解法2

由于数组.index函数复杂度为O(1),整体复杂度降为O(n)看起来而已,其中target - nums[i] in nums 操作复杂度为O(n)

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):
            if target - nums[i] in nums:
                y = nums.index(target - nums[i])
                if  i != y:
                    return [i,y]

解法3

通过空间换时间的思想,建立字典(内部实现为hash map)查找速度O(1)。
空间复杂度为O(n)
#TODO 不是那么清楚为什么解法3比解法2快那么多,个人认为:
python中list对象的存储结构采用的是线性表,因此其查询复杂度为O(n),而dict对象的存储结构采用的是散列表(hash表),其在最优情况下查询复杂度为O(1)。

class Solution:
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        d = {}
        for x in range(len(nums)):
            rest = target - nums[x]
            #字典d中存在nums[x]时,就代表rest找到了,返回rest的下标,再根据字典找到rest的另一半的下标
            if nums[x] in d:
                return d[nums[x]],x
            #否则往字典增加键/值对,值是nums[x]的索引,
            else:
                d[rest] = x

GBase8a-GDCA认证考试-复习参考题 为提升产品服务水平定期举办GBase产品认证培训,培训更多GBase数据库专业人员,满足用户快速成长的业务需求,建设GBase产品生态。请注意甄别,根据所学知识综合判断,正确率97%(97分)。 阅读详情

相关推荐

微波传感器 - 从原理到实战,解锁非接触感知新维度

本文深入解析微波传感器的工作原理,重点阐述了其基于多普勒效应的非接触感知机制,并对比了红外、超声波等技术的优劣。通过树莓派Pico与RCWL-0516模块的实战案例,展示了如何构建区域入侵检测器,并探讨了微波传感器在智能家居、工业自动化及汽车电子等领域的广阔应用前景。

weixin_29306571的博客 222

用Python实现两数之和(python)

用Python实现两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, ...

南有芙蕖 1万+

Win10 Xbox游戏安装错误终极解决方案

Win10 Xbox游戏安装错误终极解决方案作为Windows 10系统深度用户,相信不少玩家都遇到过Xbox应用安装游戏失败的问题。这类问题轻则影响游戏体验,重则导致系统资源占用异常。本文将结合微软官方技术文档与实际维修案例,系统讲解Xbox游戏安装错误的深层原因与解决方案,帮助读者建立完整的故障处理思维体系。

mmoo_python的博客 2065

Leetcode算法之旅之python TwoSum

前言 平生不识TwoSum,刷尽LeetCode也枉然。 欢迎开启LeetCode刷题的旅程,这将是一段漫长而又艰辛的旅程。不过一定要牢记的是,不要下船,不要中途放弃,要坚持。 这道Two Sum的题目作为LeetCode的开篇之题,乃是经典中的经典,正所谓‘平生不识TwoSum,刷尽LeetCode也枉然’ 环境以及工具 Python 3.7.2 PyCharm 2018.3.3 撸起袖子就...

weixin_34029949的博客 262

stm32h743的hrtim使用生成pwm波

HRTIM(High-Resolution Timer)是一种高精度定时器,其时钟频率可直接与CPU主频同步,达到480MHz。相比之下,其他传统定时器需挂载在APB总线上,受总线频率限制,最高仅支持240MHz。这种直接时钟同步机制显著提升了定时器的分辨率和精度。

d13211322的博客 1610

VirtualBox增强功能安装全指南:从下载到配置复制粘贴功能

本文详细介绍了VirtualBox增强功能的完整安装与配置流程,重点解决了虚拟机与主机间复制粘贴、文件拖放等核心协作难题。通过分步指南和故障排查,帮助用户在不同操作系统(如Windows、Linux)中实现无缝集成,提升虚拟化工作效率与体验。

weixin_29206669的博客 417

【python】两数之和 python实现(详细讲解)

👉博__主👈:米码收割机👉技__能👈:C++/Python语言👉公众号👈:测试开发自动化【获取源码+商业合作】👉荣__誉👈:阿里云博客专家博主、51CTO技术博主👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。

测试开发自动化 4554

PyTorch 最新安装教程(2021-07-27)

PyTorch 最新安装教程(2021-07-27)前言1. 安装 Anaconda2. 检查显卡,更新驱动3. 创建PyTorch环境4. 配置清华TUNA镜像源5. 安装 PyTorch6. 测试 前言 万事开头难! 这句话又一次被我验证。 记得前不久刚陷入Tensorflow2.0的安装困境,这一次又被PyTorch 搞哭辽。 孩子太难了o(╥﹏╥)o,不过还好最终成功安装,感谢全网资源,感谢大佬们的博客!被我一次一次试了出来。 1. 安装 Anaconda Anaconda 是一个用于科学计算的 P

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 23万+

力扣刷题 1. 两数之和

力扣 1. 两数之和题目第一次回答结果优化后代码结果分析总结 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0,

weixin_43103920的博客 956

【知识分享】什么是同轴传输线结构?

同轴传输线的几何形状由中心导体组,嵌在介电材料(Dielectric)中,并且,被连续的外导体所包围,也被称为屏蔽(Shield)。内外导体有相同的几何中心轴,因此得名同轴(Coaxial)。

一只豌豆象的博客 2371

[SoC]SoC验证中bootcode与firmware相关验证经验总结

本文总结了SoC验证中bootcode和firmware的验证经验。重点介绍了两种数据加载方法:1)使用Verilog系统函数$readmemh/$readmemb直接写入ROM/ARAM,需注意文件路径、格式和斜杠方向;2)通过Memory Hierarchy在initial块中操作,需要添加适当延时并注意路径拼接。文章还提供了在testcase phase中先读取数据到HASH再写入SRAM的示例,并强调加载后需使能edc_bypass以避免ECC错误。验证过程中需特别注意文件位置、格式要求及路径处理等

元直的博客 2496

Python如何计算两个数字之和是多少?

python是一门非常受欢迎的编程语言,具有多种优势,简单易学、用途广泛、免费开源、易读易维护、可移植,且具有丰富的库,在诸多领域都得到了广泛的应用。而在python中,求两个数的和是非常常见的需求,但很多小伙伴在实际操作过程中经常会出现报错的情况。python输入两个数进行求和的方法:首先使用input()函数接收从键盘输入的两个数;print('数字 {0} 和 {1} 相加结果为: {2}'.format(num1, num2, sum))num2=input('输入第二个数字:')

oldboyedu1的博客 1万+

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2197

python 两数之和_python 两数之和

两数之和 python实现解法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+1,n):if nums[j] ==...

weixin_36036343的博客 517

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

两数之和 python_Python两数之和

Python两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。思路一:class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:i = index_2 =...

weixin_39589241的博客 163

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode—两数之和(python篇)

下面是道力扣题,接下来会教给大家三种方式完成,以后会专门出一个目录用python解题。其实这道题乍一看还是比较简单的,事实上确实也是比较基础的一道题,但是也不免会有一些不屑一顾且上手就犯怵的理论大师,当然也希望自己的这几种解题方式可以帮助到各位小”猿“

苏小生 1569

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

python求任意两数之和是多少,Python 两数之和

两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]1、class Solut...

weixin_33124479的博客 3253

leetcode 1两数之和(python3实现)

两数之和: 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 例如: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] py...

算法探索之路 1万+

两数之和的三种解法 使用python 力扣

两数之和的三种解法 使用python 力扣 1:暴力2: HASH两遍3: HASH 1遍 1:暴力 class Solution: def twoSum(self, nums, target): for i in range(len(nums)): for j in range(i + 1, len(nums)): ...

weixin_44148281的博客 773

两数之和(python)

数组,查找数组元素用哈希表,合并两有序数组可以双指针也可以逆指针

m0_74078999的博客 1135

两数之和 python

作者: 18届崔云龙 日期:2020-10-3 标签: 简单 遍历 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解题思路: 遍历一遍 代码 class Solution(ob

appleclub666的博客 181

Python学习日记——两数之和

Python学习日记003——两数之和 题目来源:LeetCode题库——回文数 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 注:你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 Example1: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 链接:https://leetcode-cn.

weixin_43872060的博客 303

LeetCode—1. 两数之和—python

LeetCode—1. 两数之和—python

wtzszzx的博客 572

Python-力扣 1. 两数之和

力扣 1. 两数之和

害怕也得前进 650

两数之和,三数之和,四数之和 ,及优化 python

以双指针或者哈希表代替暴力枚举

m0_68932216的博客 309

python的return语句求两数之和,leetcode 1. 两数之和 python实现

题目:leetcode1题目描述解法:1. 暴力解法class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for i in range(len(nums)):for j in range(i+1,len(nums)):if nums[i] + nums[j] == target:return [i...

weixin_39800875的博客 558
上一篇: Python eval 函数
下一篇: Python寻找两个有序数组的中位数
GhostintheCode
博客等级 码龄8年 53粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值