前言
两数之和的求解方法
一、题目
给定一个整数数组 nums 和一个整数目标target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。
二、解题方法
1.暴力求解
代码如下:
def two_sum(nums: list, target: int):
"""
:param nums: 数组
:param target: 两数之和
:return: 暴力求解,遍历列表中的所有元素,依次想加判断对应的和是否等于target
"""
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
if nums[i] + nums[j] == target:
return [i, j]
2.优化求解
代码如下:
def two_sum_1(nums: list, target: int):
"""
:param nums:
:param target:
:return: 通过内置函数enumerate将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,
将列出的数据存入字典中,将key作为值,value作为键传入字典hashtable中,
"""
hashtable: dict = dict()
for key, value in enumerate(nums):
if target - value in hashtable:
return [hashtable[target - value], key]
else:
hashtable[nums[key]] = key
总结
记录接触算法的开始