leetCode每日一题(1)——python3

1. Two Sum


翻译:输入一个整数数组nums和target,在数组中找到两个整数,其和等于target。结果输出这两整数数组的位置。要求答案只有一个且数组中的整数不能用两次。
1、低效的方法:

class Solution:
    def twoSum(self, nums: 'List[int]', target: 'int') -> 'List[int]':
        for i in range(len(nums)):
            for j in range(i+1, len(nums)):
                if nums[i]+nums[j] == target:
                    return [i, j]

2、优化后:定义一个字典dic,只要满足num和target-num能在dic中找到答案

class Solution:
    def twoSum(self, nums: 'List[int]', target: 'int') -> 'List[int]':
        dic = {}
        # enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
        for i,num in enumerate(nums):
            if num not in dic.keys():
                dic[target-num] = i
            else:
                return [dic.get(num), i]

你可能感兴趣的:(leetCode每日一题(1)——python3)