【算法训练】LeetCode#1 两数之和
一、描述
难度:简单
问题:给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
二、问题
起初想到的是将每一次相加成功的下标添加至useList中,再判断是进行对比,但是仅通过28组数据,原因是没想到最后数据有那么多,运行超时。
class Solution:
def twoSum(self, nums, target):
useList = []
for i in range(len(nums)):
for j in range(len(nums)):
if i != j and nums[i] + nums[j] == target and i not in useList and j not in useList:
useList.append(i)
useList.append(j)
return [i, j]
三、解题(2020.09.20)
后来想到了只要j永远大于i就可以不进行是否相等的判断,也就不需要进行n方倍的迭代,大大减少了运行时常
class Solution:
def twoSum(self, nums, target):
for i in range(0, len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]