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

LeetCode1.两数之和

时间:2023-03-26 19:08:34 Python

给定一个整数数组nums和一个目标值target,请在数组中找到和为目标值的两个整数,并返回它们的数组下标。您可以假设每个输入只有一个答案。但是,您不能在此数组中重复使用相同的元素。例子:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以return[0,1]一开始我想到了暴力解法,但是时间复杂度太高,O(n^2);每次访问一个元素后,也可以得到target和current的差值,只要判断差值是否在list中,利用这个遍历得到结果类解决方案:deftwoSum(self,nums,target):foriinrange(len(nums)):first=nums[i]second=target-firstifsecondinnums[i+1:]:#判断差异是否在i之后的子列表中#如果存在则获取子列表中的索引并连接以获得nums中的索引j=nums[i+1:].index(second)+i+1return[i,j]