本文为Python算法题集之一的代码示例
题目1:两数之和
说明:给定一个整数列表(数值不重复) nums 和一个整数目标值 target,请在该数组中找出和为目标值 target 的整数对,并返回数组下标对
-
简单版【只有一个两数和等于目标值】
# 简单版【给定一个不重复整数列表 nums 和一个整数目标值 target,请在该数组中找出和为目标值 target 的整数对,并返回这个数组下标对】 def twoSum(nums: list, target: int) -> list: for i in range(len(nums)): tmpA = nums[i] valueB = target - tmpA if valueB in nums: tmpIdxb = nums.index(valueB) if tmpIdxb == i: continue return [i, nums.index(valueB)] numsa = [1,2,3,4,5,6,7,8,9,10,11,0,12,13,14] print('{}中整数和为{}的元素唯一下标对为{}'.format(numsa, 25, twoSum(numsa, 25))) # 运行结果 # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 12, 13, 14]中整数和为25的元素唯一下标对为[10, 14]
-
加强版【有多个两数和等于目标值】
# 加强版【给定一个不重复的整数列表 nums 和一个整数目标值 target,请在该数组中找出所有和为目标值 target 的整数对,并返回它们的数组下标对】 def twoSumList(nums: list, target: int) -> list: result = [] for i in range(len(nums)): # 避免出现重复的数组下标对 if i in result: continue tmpA = nums[i] valueB = target - tmpA if valueB in nums: tmpIdxb = nums.index(valueB) if tmpIdxb == i: continue result = result + [i, nums.index(valueB)] return result numsa = [1,2,3,4,5,6,7,8,9,10,11,0,12,13,14] print('{}中整数和为{}的元素所有下标对为{}'.format(numsa, 11, twoSumList(numsa, 11))) # 运行结果 # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 12, 13, 14]中整数和为11的元素所有下标对为 # [0, 9, 1, 8, 2, 7, 3, 6, 4, 5, 10, 11]
一日练,一日功,一日不练十日空文章来源:https://www.toymoban.com/news/detail-818594.html
may the odds be ever in your favor ~文章来源地址https://www.toymoban.com/news/detail-818594.html
到了这里,关于Python算法题集_两数之和的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!