leetcode自我訓練 1 兩數之和

2021-10-03 09:30:20 字數 1476 閱讀 6106

給定乙個整數陣列 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...