leetcode之兩數相加解題思路

奶茶喝不胖發表於2020-06-06

問題描述

給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

解題思路

1.暴力破解 雙重for迴圈

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        a=len(nums)
        for i in range(a):
            for j in range(i+1,a):
                if nums[i]+nums[j]==target:
                    return [i,j]

結果為

2.使用字典操作

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
	hashmap = {}
        for index, num in enumerate(nums):
            another_num = target - num
            if another_num in hashmap:
                return [hashmap[another_num], index]
            hashmap[num] = index

結果為:

關注公眾號“python做些事” 掌握更多力扣演算法,輕鬆拿到大廠offer

相關文章