給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。第一次的解法你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
:for a,i in
enumerate
(nums)
:if target-i in nums[a+1:
]:return
[a,nums.index(target-i,a+1)
]
因為題目告知每種輸入都會得到乙個唯一的對應答案,所以不考慮不存在的情況。
a和i瀏覽陣列,並對下標大於a的元素進行檢驗,匹配成功後返回
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
: dic=
for a,i in
enumerate
(nums)
: dic[i]
=a for a,i in
enumerate
(nums)
: j=dic.get(target-i)
if j and j!=a:
return
[a,j]
把列表儲存在字典中進行索引來減少執行時間
根據題解裡面的進行修改
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
: dic=
for a,i in
enumerate
(nums)
: j=dic.get(target-i)
if j!=
none
and j!=a:
return
[j,a]
dic[i]
=a
只把下標小於a的元素進行匯入到字典中並索引,減少執行時間
執行用時 :36 ms 記憶體消耗 :14.7 mb
leetcode 兩數之和 1
1.給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 go實現 package main import ...
1 兩數之和 LeetCode
題目描述 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...
1 兩數之和 LeetCode
題目鏈結 class solution return null class solution map.put target nums i i return null 這裡使用hashmap進行乙個對映。每到乙個數nums i 我們需要找對應的target nums i 那麼我們就把target nu...