力扣-----python两数之和问题(超详细,适合初学者)

本文详细介绍了如何解决LeetCode中的两数之和问题,通过暴力求解和哈希表法,适合Python初学者。文章以列表[2, 7, 8, 9, 13]和目标值10为例,解释了当2+8等于目标值时,返回其索引[0, 2]的思路。" 123590164,12649516,中国回转机构行业市场全景及发展战略,"['工程机械', '产业链分析', '市场预测', '行业报告', '市场研究']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两数之和----------暴力求解

首先我们需要有一个目标列表,并且有一个目标值。如果列表中的某两个数之和,正好等于我们的目标值,那么就会反回那两个数的索引。

举个栗子

给列表[2,7,8,9,13]定的目标数字是10,那么程序运行后返回的结果为[0,2]

0是2的索引

1是7的索引

2是8的索引

3是9的索引

4是13的索引

因为我们的目标值为10,2+8=10,正好与我们的目标值相等,所以会分别返回的2和8索引,也就是[0,2]。

思路

数组中的整数只能使用一次,将数组的长度赋值为一个变量len,分别使用两个for循环枚举所有的可能,只要找到两个元素之和等于target(target代表我们设定的目标值也就是10),就组成一个新的数组返回。

class Solution:  #nums参数需要一个列表,target参数就是我们要实现的和的目标
     def twoSum(self,nums: list[int],target: int) -> List[int]: 
         n = len(nums) #获取数组长度从下表零开始
         for i in range(n):  #循环遍历
             for j in range(i + 1 , n):  #因为j是从i的下一个数开始遍历一直到列表最后,因此i+1
                 if nums[i] + nums[j] == target:  #条件满足
                     return [i,j]  #返回对应下标
                      

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


nums = [2,7,8,9,13]  #创建数组
target = 10
s = Solution()  #创建对象
print(s.twoSum(nums,target))  #打印结果
    

最新更新超级详细哈希表法

Python两数之和哈希表法(超级详细,适合初学者)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值