雜湊表法
小結給定乙個整數陣列nums
和乙個目標值target
,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:
給定 nums =[2
,7,11
,15], target =
9因為 nums[0]
+ nums[1]
=2+7
=9所以返回 [0,
1]
class
solution
:def
twosum
(self, nums: list[
int]
, target:
int)
-> list[
int]
: j =
len(nums)
for i in
range
(j):
t = target - nums[i]
if t in nums[i +1:
]:return
[i, nums.index(t, i +1)
]else
:continue
執行結果: 通過
執行用時: 868 ms, 在所有 python3 提交中擊敗了36.49%的使用者
記憶體消耗: 14.1 mb, 在所有 python3 提交中擊敗了68.74%的使用者
先按照自己的想法設計,通過判斷target - nums[i]
是否存在於後面的列表中來找到另乙個數字,演算法並不是很快。之後學習了雜湊表法,通過建立字典,將鍵與num1匹配,值與num1的索引匹配,一邊遍歷陣列,一邊查詢並將鍵值加入字典中,由於雜湊表查詢時間複雜度低,所以會快很多。
leetcode 字母異位詞分組(python)
題目 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。注意 需熟悉字典的相關使用方法 class so...
leetcode 200 島嶼數量 python
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11...
leetcode 字母異位詞分組 python3
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。python中使用 字典 維護乙個分組表,鍵值 key...