python计算两数之和初学者_Python方法解决两数之和(适合初学者)

Python方法两数之和–两种方案

今天在写这个算法的时候,遇到了在pycham上面可以进行运行,但是在力扣上不能运行,搞了好久,不去想了,我所写的算法分析,非常适合刚刚入门的学习算法的同学,下面是两数之和的两种解法,首先看一下题:

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

示例:

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

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

上面是给出这个题一些思想。让我先看看解法一,这个第一方法就是利用嵌套循环,也就是俩个for循环进行求解,下面一起来看看代码解析:

方法一

class Solution():

def towSum(self,list,targe):#定函数参数包括一个数组and目标数(整型)

n=len(list)#获取数组长度下标从零开始

for i in range(n):

for j in range(i+1,n):#循环遍历

if list[i]+list[j]==targe:#满足条件

return [i,j]#返回对应的下标

return []#不存在返回空列表

s=Solution()#创建对象

num=[2,5,7,13]#创建数组

com=s.towSum(num,15)#创建对象进行函数的调用,输入参数

print(com)#打印结果

下面试运行结果

方法二

运用哈希表进行代码的编写,哈希表的创建利用python里面的字典进行创建,这种解法大大节约了时间复杂度,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。下面我看看代码解析:

class Solution():

def towSum(self,list,targe):

Hashtable=dict()#创建哈希表

for i,num in enumerate(list):#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

if targe-num in Hashtable:

return [Hashtable[targe-num],i]

Hashtable[list[i]]=i#把列表的元素添加哈希表中

return []

s=Solution()

num=[2,5,7,13]

com=s.towSum(num,15)

print(com)

运行结果:

原文链接:https://blog.csdn.net/weixin_46347928/article/details/108919636

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值