当前位置: 首页 > 后端技术 > Python

给定一个整数数组nums和一个目标值target,请在数组中找到和为目标值的两个整数,并返回它们的数组下标

时间:2023-03-26 14:21:40 Python

给定一个整数数组nums和一个目标值target,请在数组中找到和为目标值的两个整数,并返回它们的数组下标。您可以假设每个输入只有一个答案。但是,您不能在此数组中重复使用相同的元素。例子:给定nums=[2,7,11,15],target=9,因为nums[0]+nums[1]=2+7=9,所以返回[0,1]第一个解法:classSolution(object):deftwoSum(self,nums,target):如果len(nums)<2:returnforiinrange(0,len(nums)-1):forjinrange(i+1,len(nums)):ifnums[i]+nums[j]==target:return[i,j]nums=[2,7,11,15]s=Solution()第二种解法:defsolution(nums,target):#创建一个新的空字典,用于保存值及其在列表中对应的索引dict1={}#遍历一次列表的时间复杂度为O(n)foriinrange(0,len(nums)):#相减获取另一个值num=target-nums[i]#如果另一个值不在字典中,则将第一个值及其在字典中的索引报告为错误#因为在字典中查找的时间复杂度为O(1),所以总的时间复杂度是O(n)ifnumnotindict1:dict1[nums[i]]=i#如果在字典中,returnelse:return[dict1[num],i]nums=[2,7,11,15]打印(解决方案(nums,26))