1.两数之和
两个解题思路,都是穷举,第一种解题思路超时,第二种全部通过。
第一种
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
num1 = nums
num2 = nums
for index1,element1 in enumerate(num1):
for index2,element2 in enumerate(num2):
element_sum = element1 + element2
flag = index1 != index2
if (element_sum==target) & flag:
return [index1, index2]
第二种
第二种方法是在第一种方法的基础上的优化,为了避免重复使用元素,嵌套的循环从i+1个index开始。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
lenofnums = len(nums)
for i in range(lenofnums):
for j in range(i+1, lenofnums):
if (nums[i] + nums[j]) == target:
return [i,j]
测试全部通过。