python LeetCode 兩數之和

2021-09-12 11:52:43 字數 899 閱讀 6229

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

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例

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

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

思路

我也是受到了其他大神**的啟發。這個題可以很巧妙的運用字典的對映關係來做。我們遍歷陣列中的每乙個元素,如果該元素沒有在字典中,則在字典中新增新元素——>key為target-當前元素值,value為當前元素的index。如果元素在字典中,則說明我們找到了目標對,返回相應形式即可。

29用例,88ms,擊敗56%python3提交記錄

class

solution

:def

twosum

(self, nums, target)

:"""

:type nums: list[int]

:type target: int

:rtype: list[int]

"""dict

=for i in

range

(len

(nums)):

if nums[i]

indict

:return

(dict

[nums[i]

],i)

else

:dict

[target-nums[i]

]= i

1 兩數之和 Python LeetCode

剛開始接觸演算法方面,好多都不懂,打算每刷一題就整理一下 給定乙個整數數列,找出其中和為特定值的那兩個數。你可以假設每個輸入都只會有一種答案,同樣的元素不能被重用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 解法一 剛開...

2 兩數相加 Python LeetCode

兩數相加 給定兩個非空鍊錶來代表兩個非負整數,位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將這兩數相加會返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 解法 把鍊錶l1和l2中的數字...

python leetcode 1 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...