两数之和----------暴力求解
首先我们需要有一个目标列表,并且有一个目标值。如果列表中的某两个数之和,正好等于我们的目标值,那么就会反回那两个数的索引。
举个栗子
给列表[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)) #打印结果
|