算法创作|两数之和返回数组下标问题解决方法
问题描述给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。示例:输入:nums = [3,5,7,9],target = 14输出:[1,3]解决方案读完问题之后先找出问题里面关键的信息,“和为目标值的两个整数”,这句话就是关键,然后把示例与问题相结合,更进一步知道本题是需要我们干什么。当我们看到示例时,输入的有一个整数数组和一个目标值,通过给出的target可知是数组里面的5与9相加得出的结果,题中让我们返回的是数组下标,在整数数组nums中,5的下标为1,9的下标为3,所以输出的是[1,3]。上一段是对题的理解,这段就是讲如何写出程序,来执行这个示例。从题中“和为目标值的两个整数,并返回它们的数组下标”这句中我们可以想到代码可能是这样表示nums[x]+nums[y]==target,即x和y是数组的下标,但是现在我们需要知道x和y是如何与nums[x]+nums[y]==target联系在一起的,发现可以用循环来实现,从数组下标为0开始与数组下标不为0的依次相加直到得出target为止。代码清单 两数之和返回数组下标 问题Python代码class Solution:def twoSum(self,nums,target):n = len(nums) #nums的长度for x in range(n): #外层循环依次从数组下标为0开始取for y in range(x+1,n): #内层循环从数组下标为1开始取if nums[x] + nums[y] == target:return [x,y]结语本篇文章主要是解决两数之和返回下标的问题,用到了循环,并且是用了两次,在写程序的时候需要注意语法基本格式,不能出错,首先读懂题,然后把示例与题相结合理解,再想一些代码如何表示。可能本题还有特别简单的方法,但目前能力有限只想出了此方法,在日后的学习中我会研究出简单且易懂的方法。并多研究一些算法题目。然后尝试用多种方法解题。实习编辑:王晓姣稿件来源:深度学习与文旅应用实验室(DLETA)