1.两数之和
解题思路1
1.通过两个循环来实现列表遍历求和,逐个与target相比,直到找到符合要求的数值,并输出列表位置–ind.
代码实现1
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for j in range(len(nums)):
if abs(i-j):
sum=nums[i]+nums[j]
ind=[i,j]
if sum==target:
return ind
结果1
耗时过多,未能成功提交
优化思路:改进循环求和
解题思路2
从头开始循环,逐个pop
代码实现2
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
list0=copy.deepcopy(nums)
type(list0)
ind=[]
while nums:
i=nums.pop(0)
for j in nums:
if not (i+j-target):
ind.append(list0.index(i))
list0.pop(ind[0])
ind.append(list0.index(j)+1)
return ind
结果1
通过 4100 ms 14.7 MB Python3