【leetcode系列】【py3】【简单】两数之和

题目:

【leetcode系列】【py3】【简单】两数之和

原题链接: https://leetcode-cn.com/problems/two-sum/

 

解题思路:

利用hash表,保存之前遍历过的元素

在遍历后面的元素时,直接查找是否有target - current_number的值

如果有,直接返回[current_number, target - current_number]

如果没有,把当前数字插入到hash表中,继续遍历

 

代码实现:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        his = {}
        for index in range(0, len(nums)):
            curr_num = nums[index]
            other_num = target - curr_num
            if other_num in his:
                return [his[other_num], index]
            
            his[curr_num] = index
            
        return [0, 0]